MapView Marker shadow

情到浓时终转凉″ 提交于 2019-12-18 04:23:28

问题


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.mapOverlay.addOverlay(overlayitem2);
app1.mapOverlays.add(app1.mapOverlay);

that works but the shadow is at the wrong position.


回答1:


I use this:

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



回答2:


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.




回答3:


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


来源:https://stackoverflow.com/questions/3515638/mapview-marker-shadow

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!