Я не могу получить изображение с Google Map с помощью кэша чертежа в Android Studio

У меня есть этот код в макете:

<FrameLayout>    
        <fragment
            ...
            android:name="com.google.android.gms.maps.SupportMapFragment">
        </fragment>    
</FrameLayout>

Но когда я пытаюсь использовать кэш для рисования, на скриншоте есть только панель масштабирования (с кнопками + и -) и текст "Google" в левом углу. Я использую следующий код для получения изображения:

View view = findViewById(R.id.frame);
view.setWillNotCacheDrawing(false);
view.destroyDrawingCache();
view.buildDrawingCache();
view.setDrawingCacheEnabled(true);
routeScreen = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);

1 ответ

Решение

Причина этого в том, что карта рисуется с использованием OpenGL, а данные пикселей хранятся в графическом процессоре.

Взгляните на метод GoogleMap.snapshot() Google Map, чтобы сделать снимок экрана карты.

Другие вопросы по тегам