Android Google Maps v2 Kamera-Animation
So, ich bin nicht sicher, ob das ein bug ist oder noch nicht... könnte sein, oder ich kann etwas verpasst haben.
Sowieso so, hier ist der link zu Google Maps V2 Kamera-Steuerelemente. https://developers.google.com/maps/documentation/android/views#moving_the_camera
Das Problem :
Animieren zu einem Standort ist bereits animiert, nicht nennen onFinish();
Wie zu replizieren:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mLocation.getLatLng(), zoomLevel), 200, new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
//DO some stuff here!
Log.d("animation", "onFinishCalled");
}
@Override
public void onCancel() {
Log.d("animation", "onCancel");
}
});
Dieses Problem kann auch entstehen, wenn ein Anwender doppelt tippt etwas, das als die gleiche animation, auch wenn es eine lange Zeit zwischen onFinish wird nur aufgerufen werden, für eine erfolgreiche animation. Wenn die Kamera bereits aufgestellt, die Methode onFinish wird nicht aufgerufen!
Ich gehen könnte, um dabei überprüft, bevor ich irgendeine Kamera-animation, aber ich mag es nicht, dass als seine verschwenderisch.
Jede Hilfe würde geschätzt werden.
Danke.
- bisher die einzige brauchbare Alternative ist die Verwendung moveCamera eher als animateCamera aber BOOOO dazu.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem, wenn ich will, um die Kamera zu bewegen, um die gleiche position, wie es scheint, ein bug.
Auch wenn alte und neue position nicht das gleiche, und der Unterschied ist so klein , ex: alte position.Breite = 94.54284009112, neue position.Breite = 94.54284003451, es dosen ' T Arbeit.
meine Lösung ist abgeschnitten die Werte zu bekommen, nur old_position.Breite = new_position.Breite = 94.54, dann mache ich einen test.
Gibt es ein weiteres problem mit sich bewegenden Kamera und Blättern Sie die Karte in der gleichen Zeit, für die ich deaktivieren scroll-Geste, bevor er und aktivieren Sie es auf die onFinish() und onCancel().
Hoffe das hilft dir 😉
Sollten Sie überprüfen Sie den Abstand in Pixeln, nicht die geo-Abstand:
Die einzige Lösung, die ich gefunden habe, ist dabei die verschwenderische pixel-Wert-Kontrollen, die Einrichtung einer Schein - (aber nahe) CameraUpdate Objekt und macht eine verschachtelte animateCamera () - Aufruf mit dem Schein CameraUpdate und erst dann das aufrufen einer weiteren cameraUpdate() in der ersten onFinish() mit den richtigen CameraUpdate. Installierte ich die Google-MAP v2 update heute, aber es hat nicht geholfen. Dies ist ein problem auf eine Drehung des Geräts für mich. Ich bin Anzeige der bounding-Rechtecke und der Schwerpunkt ändert sich nicht auf rotation, also die animateCamera() funktioniert nicht und wenn das Gerät gedreht wird das gewählte Rechteck kann teilweise außerhalb des Bildschirms.
Hast du eine andere Lösung noch???
Dank
Hier ist eine andere Problemumgehung:
Sie wissen, dass die animation die Dauer Ihrer Animationen anzeigen. So können Sie nach einer verzögert ablaufenden mit einer Verzögerung der animation Dauer + einige offset-und dort können Sie prüfen, ob die fertigen/canceld listener genannt wurde... wenn nicht, Holen Sie es und rufen Sie die entsprechende listener -