Окончательное обновление
Запрос функции выполнен Google. См. этот ответ ниже.
Оригинальный вопрос
Используя старую версию Android API Google Maps, я смог зафиксировать скриншот карты google для обмена через социальные сети. Я использовал следующий код для захвата снимка экрана и сохранения изображения в файл, и он отлично работал:
public String captureScreen()
{
String storageState = Environment.getExternalStorageState();
Log.d("StorageState", "Storage state is: " + storageState);
// image naming and path to include sd card appending name you choose for file
String mPath = this.getFilesDir().getAbsolutePath();
// create bitmap screen capture
Bitmap bitmap;
View v1 = this.mapView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
OutputStream fout = null;
String filePath = System.currentTimeMillis() + ".jpeg";
try
{
fout = openFileOutput(filePath,
MODE_WORLD_READABLE);
// Write the string to the file
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
Log.d("ImageCapture", "FileNotFoundException");
Log.d("ImageCapture", e.getMessage());
filePath = "";
}
catch (IOException e)
{
// TODO Auto-generated catch block
Log.d("ImageCapture", "IOException");
Log.d("ImageCapture", e.getMessage());
filePath = "";
}
return filePath;
}
Однако новый объект GoogleMap, используемый V2 для api, не имеет метода getRootView(), такого как MapView.
Я попытался сделать это:
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.basicMap);
View v1 = mapFragment.getView();
Но скриншот, который я получаю, не имеет никакого содержимого карты и выглядит так:
Кто-нибудь понял, как сделать снимок экрана нового API Google Android V2?
Обновление
Я также попытался получить rootView следующим образом:
View v1 = getWindow().getDecorView().getRootView();
Это приводит к скриншоту, который включает панель действий в верхней части экрана, но карта по-прежнему пуста, как прикрепленный снимок экрана.
Обновление
В Google был отправлен запрос функции. Пожалуйста, откройте функцию запроса функции, если это то, что вы хотите добавить в будущем Google: Добавить способность скриншотов к API Карт Google V2