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 回答