我正在搜索如何从mapview保存地图图像。但仍然一无所获。我使用下面的代码,但我仍然得到“无法启动活动... NullPointer异常”的错误。
我坚持这个查询。有没有人设法做到这一点?
mapView.setWillNotCacheDrawing(false);
mapView.destroyDrawingCache();
mapView.buildDrawingCache();
// Copy the drawing cache before the system recycles it
Bitmap cachedImage = Bitmap.createBitmap(mapView.getDrawingCache());
Bitmap bmap = Bitmap.createBitmap(mapView.getWidth(), mapView.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas offscreencanvas = new Canvas(bmap);
offscreencanvas.drawBitmap(cachedImage, 0, 0, null);
答案 0 :(得分:1)
要获得此问题的解决方案,您应该在地图运行时拍摄设备的屏幕截图我们可以使用Android中的相机捕获设备的屏幕截图。 在这里我给了一些使用相关的完整链接阅读它。
Android take screenshot via code
Take Screenshot of Android screen and save to SD card
我希望它对你非常有用。
答案 1 :(得分:0)
void snapshot (GoogleMap.SnapshotReadyCallback callback)
方法已添加到GoogleMap
API。你应该使用它。
buildDrawingCache
不适用于MapView
原因地图本身正在SurfaceView
呈现,而View
不使用B
的绘图缓存。