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.
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);
}
}
精彩评论