0
我的代碼如下。本質上,我試圖用自定義標記替換每個標記,即我的可繪製beer_full。OSMDroid MapView。成功添加自定義標記,但默認也顯示過?
在我的自定義覆蓋圖中這個被覆蓋的繪圖函數完成了這項工作,但它也保留了默認圖標。所以我的標記作爲默認標記頂部的自定義標記出現在我的地圖上。
任何人都知道我如何停止默認標記顯示?
乾杯
@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);
}
}
}
你可以刪除'super.draw(canvas,mapview,shadow)'並檢查會發生什麼嗎? – Marcelo
It works :) 我是個白癡。所以我正確地理解,通過擁有那個超級構造函數,它只是簡單地調用默認的繪圖函數呢? 沒有超級構造函數還有其他問題嗎? –
這不是一個構造函數,它只是一個方法。是的,你是正確的,你告訴超級班級繪製默認圖標,然後繪製自定義圖標。至於任何關於不對超級類別進行調用的問題,這取決於它是如何實現的,但如果你沒有問題地嘗試它,這將不會是一個問題。如果你有權訪問超級類的源代碼,我建議你檢查一下,看看他們在那裏做了什麼。 – Marcelo