2

MapViewと別のビューを保持するViewSwitcherを備えたアプリがあり、MapViewのビットマップを画像として保存したいと思います。次のような操作を行ってMapViewが少なくとも1回表示されている場合、これは適切に機能します。

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

問題は、MapViewが表示されていない場合、ビットマップにgetDrawingCache()戻ることです。nullそれを解決する方法はありますか?

4

1 に答える 1

1

私はそれを行う方法を見つけました。行うべき2つのことがあります:

ビットマップを取得するには、独自のビットマップを作成し、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 に答える