Масштабирование и анимация, чтобы указать карту просмотра Android
Поэтому в моем текущем приложении я хочу увеличить широту / долготу, а также использовать animateTo (или его эквивалент), чтобы убедиться, что экран правильно отцентрирован. В настоящее время я просто делаю что-то вроде этого:
_mapController.animateTo(new GeoPoint(googleLat, googleLng));
// Smooth zoom handler
int zoomLevel = _mapView.getZoomLevel();
int targetZoomLevel = AppConstants.MAP_ZOOM_LEVEL_SWITCH;
long delay = 0;
while (zoomLevel++ < targetZoomLevel) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
_mapController.zoomIn();
}
}, delay);
delay += 350; // Change this to whatever is good on the device
}
Это работает, но происходит то, что мой поток запускается, ДО того, как заканчивается "animate to", поэтому он увеличивает и затем "прыгает" для отображения правильного центра geoPoint. Есть ли способ плавно "развернуть" до определенного уровня масштабирования, а также перейти к географической точке одновременно? Подобно тому, как официальное приложение Googl eMaps увеличивает адрес после того, как вы его искали, я и собираюсь сделать это.
1 ответ
Я хотел бы сделать что-то вроде:
_mapController.animateTo(new GeoPoint(googleLat,googleLong), new Runnable() {
public void run()
{
_mapController.zoomIn ();
}
});
Это обеспечит эффект панорамирования и масштабирования. Вы можете попробовать ту же логику внутри runnable для выполнения многошагового увеличения.