MapView标记阴影

时间:2010-08-18 18:56:30

标签: android android-mapview marker

我正在为地图添加不同的标记......

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

3 个答案:

答案 0 :(得分:11)

我用这个:

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

答案 1 :(得分:5)

我知道这已经回答了一段时间,但我想我会指出ItemizedOverlay类中有一个名为:boundCenterBottom(Drawable)的方法,它执行setBounds部分。还有一个boundCenter(Drawable)方法。

答案 2 :(得分: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);
    }
}