Тень маркера MapView

Я добавляю различные маркеры на свою карту...

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

это работает, но тень находится в неправильном положении.

альтернативный текст


person Upvote    schedule 18.08.2010    source источник
comment
У меня была точно такая же проблема, даже я использовал тот же источник изображения маркера :), ответ Матиаса был точным.   -  person Dr1Ku    schedule 25.11.2010


Ответы (3)


Я использую это:

int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();
drawable.setBounds(-w / 2, -h, w / 2, 0);
person Mathias Conradt    schedule 18.08.2010

Я знаю, что на этот вопрос был дан ответ некоторое время назад, но решил указать, что в классе ItemizedOverlay есть метод с именем:boundCenterBottom(Drawable), который выполняет часть setBounds. Также есть методboundCenter(Drawable).

person dineth    schedule 29.11.2011

Просто добавьте эти строки в расширенный класс 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);
    }
}
person Jahanzaib    schedule 23.04.2012