0

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));

ビットマップの一部の領域を消去して別の領域を描画するには

しかし、そのソリューションはパフォーマンスが低く、さらに悪いことに、ビットマップのリロードがマップ上に表示されます。誰かがその問題のより良い解決策を示すことができますか?

4

1 に答える 1

-3

このコードを試してください

private void drawMarker() {

        if (googleMap != null) {
            googleMap.clear();

            double lati = 25.16828;
            double longi = 55.28818;
            LatLng dest = new LatLng(lati, longi);              

            MarkerOptions options = new MarkerOptions();
            options.position(dest);
            options.title("title here")
                    .snippet("")
                    .icon(BitmapDescriptorFactory
                            .fromResource(R.drawable.icon_blue));

            googleMap.addMarker(options);

        }       

}
于 2013-07-15T06:33:40.617 に答える