Captura de pantalla captura de GoogleMap Android API V2
Actualización final
La solicitud de función ha sido cumplida por Google. Por favor miraesta respuesta a continuación.
Pregunta original
Al usar la versión anterior de la API de Android de Google Maps, pude capturar una captura de pantalla del mapa de Google para compartir a través de las redes sociales. Utilicé el siguiente código para capturar la captura de pantalla y guardar la imagen en un archivo y funcionó muy bien:
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;
}
Sin embargo, el nuevo objeto GoogleMap utilizado por V2 de la api no tiene un método "getRootView ()" como MapView.
Intenté hacer esto:
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.basicMap);
View v1 = mapFragment.getView();
Pero la captura de pantalla que obtengo no tiene ningún contenido de mapa y se ve así:
¿Alguien ha descubierto cómo tomar una captura de pantalla del nuevo API de Google Maps Android V2?
Actualizar
También traté de obtener el rootView de esta manera:
View v1 = getWindow().getDecorView().getRootView();
Esto da como resultado una captura de pantalla que incluye la barra de acción en la parte superior de la pantalla, pero el mapa todavía está en blanco como la captura de pantalla que adjunto.
Actualizar
Se ha enviado una solicitud de función a Google. Por favor, marque la solicitud de características si esto es algo que desea que Google agregue en el futuro:Añadir capacidad de captura de pantalla a la API de Google Maps V2