如何从mapView捕获地图并保存为图像而不使用Android中的相机?

时间:2011-06-15 06:05:19

标签: android

我正在搜索如何从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);

2 个答案:

答案 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的绘图缓存。