2010-05-12 3 views
7

Ich muss das Overlay neu zeichnen, nachdem der Benutzer zoomt.
Was ist der beste Weg, dies zu tun?
Ich habe alles versucht, was ich mir vorstellen kann (Speichern eines getZoomLevel() -Zustands, überschreiben onUserInteraction()), nichts funktioniert tatsächlich.
Das Problem ist, dass draw() aufgerufen wird, wenn der Benutzer auf Zoom klickt, so dass die Informationen, die meine Draw-Methode (über den Status der Karte) unterscheidet, sich von dem Zustand nach dem Zoomen der MapView unterscheiden.
Auch draw() wird nicht am Ende des Zooms aufgerufen, also nur, wenn ich die Karte schwenken wird das Overlay tatsächlich richtig gezeichnet.Zoom-Ereignisse, die in einem Android MapView funktionieren

Antwort

2

Da niemand in 7 Monaten geantwortet hat, werde ich schreiben, was ich getan habe.

Ich benutzte einen Handler, um die Karte nach 500ms manuell zu aktualisieren, es funktionierte in Ordnung.

Handler handler; 
handler.postDelayed(refreshRoute, 500); 
0

Haben Sie versucht mapview.postInvalidate() nach dem Zoom-Aufruf?