2010-08-18 44 views
3

我添加不同的標記,以我的地圖...MapView的標記影子

Drawable drawable = app1.getResources().getDrawable(R.drawable.test); 
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); 
OverlayItem overlayitem2 = new OverlayItem(mark, "Test", "t"); 
overlayitem2.setMarker(drawable); 
app1.mapOverlay.addOverlay(overlayitem2); 
app1.mapOverlays.add(app1.mapOverlay); 

的作品,但影子是在錯誤的位置。

alt text

+0

我有完全相同的問題,即使使用了相同的標記圖像源:),Mathias的回答是點上。 – Dr1Ku 2010-11-25 13:31:58

回答

11

我用這個:

int w = drawable.getIntrinsicWidth(); 
int h = drawable.getIntrinsicHeight(); 
drawable.setBounds(-w/2, -h, w/2, 0); 
+0

作爲魅力工作,謝謝! – Dr1Ku 2010-11-25 13:31:19

+0

一個該死的救生員 – Sebastian 2012-11-26 07:34:14

5

我知道這已經在不久前回答,但認爲我會指出,有在被叫ItemizedOverlay類中的方法:boundCenterBottom(可繪製的),其中setBounds部分。還有一個boundCenter(可繪製)方法。

+0

謝謝...與boundCenterBottom(Drawable):)一起工作很好 – 2012-04-09 11:58:47

0

只需在ItemizedOverlay擴展類中添加這些行即可。

public class My_MapOverlay extends ItemizedOverlay<OverlayItem> { 

    @Override 
    public void draw(Canvas canvas, MapView mapView, boolean shadow) { 
     super.draw(canvas, mapView, false); 
    } 

    public My_MapOverlay(Drawable arg0) { 
     super(arg0); 
    } 
}