0

私のコードは次のとおりです。基本的に、各マーカーをカスタム マーカー、つまり描画可能なbeer_fullに置き換えようとしています。

私のカスタムオーバーレイでオーバーライドされたこの描画機能は完全に仕事をしていますが、デフォルトのアイコンもそのままです。そのため、マーカーはデフォルト マーカーの上にカスタム マーカーとしてマップに表示されます。

デフォルトのマーカーの表示を停止する方法を知っている人はいますか?

乾杯

@Override
    public void draw(Canvas canvas, MapView mapview, boolean shadow) {
        // TODO Auto-generated method stub
        super.draw(canvas, mapview, shadow);

        if(!shadow)
        {
        for (int ctr = 0; ctr < myOverlays.size(); ctr++)
        {
            GeoPoint in = myOverlays.get(ctr).getPoint();

            //Toast.makeText(mapview.getContext(), ctr, Toast.LENGTH_SHORT).show();

            Point out = new Point();
            mapview.getProjection().toPixels(in, out);

            Bitmap bm = BitmapFactory.decodeResource(mapview.getResources(), 
              R.drawable.beer_full);


            canvas.drawBitmap(bm, 
              out.x - bm.getWidth()/2,  //shift the bitmap center
              out.y - bm.getHeight()/2,  //shift the bitmap center
              null);
        }
        }
    }
4

1 に答える 1

1

行を削除しますsuper.draw(canvas, mapview, shadow);。基本的には、(メソッドのデフォルトの実装を呼び出して) デフォルトのアイコンを描画し、そのdraw上にカスタム アイコンを描画します。

于 2012-11-13T13:30:00.237 に答える