Android: Google MapView zeigt eine Fortschrittsanzeige an, während die Karte geladen wird

8

Gibt es eine Möglichkeit, zuzuhören, wenn MapView wird noch geladen? Weil ich einen Fortschrittsanzeiger anzeigen möchte (z. B. eine Sanduhr), während MapView die Kartenkacheln herunterlädt.

Irgendeine Lösung?

    
lory105 30.08.2012, 08:25
quelle

3 Antworten

2

Die onDraw Dokumentation für MapView sagt

  

"Wir zeichnen den Kartenhintergrund (Laden von Kacheln entsprechend)"

Sie könnten versuchen, MapView zu erweitern und den Fortschrittsanzeiger auszublenden, sobald onDraw beendet ist. Aber meine Vermutung wäre, dass die MapTiles asynchron geladen werden, also würde Ihre Fortschrittsbalken fertig sein, bevor alle MapTiles geladen wurden.

    
Paul D'Ambra 18.10.2012, 15:16
quelle
4

Sie können mit OnCameraChangeListener und OnMapLoadedCallback dieses Verhalten simulieren.

die Dokumentation GoogleMap.OnCameraChangeListener :

  

public void onCameraChange (Camera Position)

     

Wird aufgerufen, nachdem sich die Kameraposition geändert hat. Während einer Animation   Dieser Listener wird möglicherweise nicht über Zwischenpositionen der Kamera informiert. Es   wird immer für die endgültige Position in der Animation aufgerufen.

     

Dies wird im Hauptthread aufgerufen.

die Dokumentation GoogleMap.OnMapLoadedCallback :

  

public void onMapLoaded ()

     

Wird aufgerufen, wenn die Wiedergabe der Karte abgeschlossen ist. Dies wird nur angerufen   Einmal. Sie müssen einen weiteren Rückruf anfordern, wenn Sie benachrichtigt werden möchten   wieder.

Wie bereits erwähnt, wird onMapLoaded() nur einmal aufgerufen. Die Strategie könnte also sein, bei jedem Aufruf von GoogleMap.OnMapLoadedCallback ein onCameraChange anzufordern.

Hier ist ein (sehr einfaches) Beispiel zur Veranschaulichung der Antwort:

%Vor%     
antonio 20.10.2015 10:33
quelle
0

Es gibt keine direkte API, um dies in der aktuellen MapView Implementierung zu tun.

    
HitOdessit 18.10.2012 15:09
quelle

Tags und Links