2

我有一个带有 ViewSwitcher 的应用程序,它包含一个 MapView 和另一个 View,我想将 MapView 的位图保存为图像。如果 MapView 通过执行以下操作至少可见一次,则此方法效果很好:

mapView.setDrawingCacheEnabled(true);
Bitmap bm = mapView.getDrawingCache();
/* ... save bitmap ... */

问题是,如果 MapView 不可见,则getDrawingCache()返回null位图。有什么办法可以解决这个问题吗?

4

1 回答 1

1

我发现了如何做到这一点。有两件事要做:

要获取位图,请创建您自己的位图并将 MapView 绘制到其中:

    Bitmap bm = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bm);
    mapView.draw(canvas);

如果这样做,您将在位图中拥有所有叠加层,但不是地图图像(图块)。为了实现这一点,您必须mapView.preLoad()在将地图绘制到位图之前调用。

于 2012-06-27T21:19:43.573 回答