开发者

MapView Marker shadow

I am adding different markers to my map...

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开发者_JAVA技巧.mapOverlay.addOverlay(overlayitem2);
app1.mapOverlays.add(app1.mapOverlay);

that works but the shadow is at the wrong position.

MapView Marker shadow


I use this:

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


I know this has been answered a while ago, but thought I'd point out that there is a method in the ItemizedOverlay class called: boundCenterBottom(Drawable), which does the setBounds part. There's also a boundCenter(Drawable) method.


Just add these lines in ItemizedOverlay extended class.

Example

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜