Android Cartes - animateCamera() la méthode ne fonctionne pas bon
Problème:
1) Carte de l'obtention d'animation pour atteindre l'emplacement requis(4e de ligne dans le code) mais elle a été agrandie à l'emplacement par défaut(5ème de ligne dans le code)
[en laissant la carte dans l'emplacement par défaut au niveau de zoom]
2) je comprends pas pourquoi le problème se produise, mais je ne sais pas comment le résoudre.
3) Si je change la ligne 4 à moveCamera au lieu de animateCamera qui fonctionne, mais je ne veux animateCamera() la méthode.
Voici le code:
map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions options=new MarkerOptions().position(new LatLng(13.0810,80.2740));
map.addMarker(options);
map.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(13.0810,80.2740)),4000,null);
map.animateCamera(CameraUpdateFactory.zoomTo(15.5f),2000,null);
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est que vous appelez
zoom
droit après que vous avez commencé l'animation vers le nouvel emplacement. C'est pourquoi il remplace simplement la dernière caméra action de mise à jour avec le nouveau.Vous pouvez simplement résoudre que par la création de plus précis de la caméra mise à jour de l'action (qui comprennent à la fois les latlng changement ET le niveau de zoom de changement):
SINON comme l'a souligné MaciejGórski, vous pouvez simplement utiliser
newLatLngZoom
interface qui comprend à la foisLatLng
etzoom
changement:Utilisation
CancelableCallback
avec les premièresanimateCamera
et l'appel de la deuxièmeanimateCamera
dansonFinish
.Exemple: AnimateCameraChainingExampleActivity.java