Google Maps API v2 を使用して Android アプリケーションを作成し、ビットマップを含むマップにオーバーレイを配置しようとしています。ビットマップをオーバーレイにアタッチする addGroundOverlay メソッドを使用しました。しかし、新しい位置が LocationManager から来ると、ビットマップを変更したいと思います (何かを消去して別のものを描画します)。オーバーレイにビットマップを描画したときの仕様によると、それを変更できないため、1 つの問題があります。したがって、オーバーレイを削除し、操作されたビットマップで再度追加します。
public void draw(Bitmap modifiedBmp) {
if (overlay != null) {
overlay.remove();
}
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(modifiedBmp);
overlay = map.addGroundOverlay(new GroundOverlayOptions().image(descriptor).positionFromBounds(bounds).zIndex(100));
}
ビットマップは以前に変更されています
p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
ビットマップの一部の領域を消去して別の領域を描画するには
しかし、そのソリューションはパフォーマンスが低く、さらに悪いことに、ビットマップのリロードがマップ上に表示されます。誰かがその問題のより良い解決策を示すことができますか?