Ich versuche nur, ein Symbol eines Mannes mit einem Kreis unter seinen Füßen in der Mitte des MapView anzuzeigen. Hier ist mein Overlay-Code:Warum ist der Schatten meines MapView-Overlays am falschen Ort?
public class CenterOverlay extends Overlay
{
private Drawable d;
public CenterOverlay(Drawable drawable)
{
final int w = drawable.getIntrinsicWidth();
final int h = drawable.getIntrinsicHeight();
drawable.setBounds(0, 0, w, h);
this.d = drawable;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
final int mapCenterX = mapView.getWidth()/2;
final int mapCenterY = mapView.getHeight()/2;
final int x = mapCenterX - d.getIntrinsicWidth()/2;
final int y = mapCenterY - d.getIntrinsicHeight();
drawAt(canvas, d, x, y, shadow);
}
}
Der Code der Overlay hinzufügen, um die MapView funktioniert gut (ich kann das Symbol rechts zu sehen, wo es angenommen hat, zu sein). Das Problem ist, dass der automatisch generierte Schatten an der falschen Stelle ist (etwa die Breite des Symbols links und etwa die Hälfte des Symbols).
Vielen Dank im Voraus für Ihre Hilfe!
Leider habe ich so lange gedauert hat, zu antworten, ging in den Urlaub. Wie auch immer, das funktioniert - obwohl ich es selbst gelöst habe, indem ich in ItemizedOverlay.boundCenterBottom() konvertiert habe, die eingestellten Werte aufgenommen habe, zu meinem Overlay zurückgegangen bin und diese Werte eingegeben habe. : P Ich hatte ein schlechtes Verständnis davon, wie die Begrenzungsbox funktioniert. –