3

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.

alt text

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 に答える