Puede usar OnCameraChangeListener
y OnMapLoadedCallback
para simular este comportamiento.
De the documentation de GoogleMap.OnCameraChangeListener
:
public abstract void onCameraChange (posición CameraPosition)
Llamado después de la posición de la cámara ha cambiado. Durante una animación, , este oyente puede no ser notificado de las posiciones intermedias de la cámara. Es siempre se llama para la posición final en la animación.
Esto se invoca en el hilo principal.
De the documentation de GoogleMap.OnMapLoadedCallback
:
public abstract void onMapLoaded()
llama cuando el mapa ha terminado la representación. Esto solo se llamará una vez. Debe solicitar otra devolución de llamada si desea recibir una notificación de nuevo .
Como se indica allí, onMapLoaded()
se llama solamente una vez, por lo que la estrategia podría ser la de solicitar una GoogleMap.OnMapLoadedCallback
cada vez que el onCameraChange
se llama.
Aquí está un ejemplo (muy simple) para ilustrar la respuesta:
public class MapsActivity extends FragmentActivity implements OnCameraChangeListener, OnMapLoadedCallback {
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
googleMap = mapFragment.getMap();
googleMap.setOnCameraChangeListener(this);
}
@Override
public void onMapLoaded() {
//TODO: Hide your progress indicator
}
@Override
public void onCameraChange(final CameraPosition cameraPosition) {
googleMap.setOnMapLoadedCallback(this);
//TODO: Show your progress indicator
}
}
Hey, ¿Ha encontrado una solución nueva? –