3

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

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

这有效,但阴影在错误的位置。

替代文字

4

3 回答 3

11

我用这个:

int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
drawable.setBounds(-w / 2, -h, w / 2, 0);
于 2010-08-18T19:38:58.303 回答
5

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

于 2011-11-29T01:28:05.043 回答
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);
    }
}
于 2012-04-23T19:51:00.960 回答