地图视图标记阴影

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

那个代码可以运作,但是阴影的位置不正确。

alt text


我遇到了完全相同的问题,甚至使用了相同的标记图像源 :),Mathias的答案非常准确。 - Dr1Ku
3个回答

11

我使用这个:

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

5

我知道这个问题已经有一段时间没有回答了,但是我想指出ItemizedOverlay类中有一个方法叫做:boundCenterBottom(Drawable),它可以完成setBounds的部分。还有一个boundCenter(Drawable)方法。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接