缩放和动画指向mapview android

时间:2012-07-27 20:01:55

标签: android android-mapview android-animation

所以在我当前的应用程序中,我想缩放到纬度/经度,但也使用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'完成之前,所以它放大然后'jumps'以显示正确的中心geoPoint。有没有办法顺利“向下钻取”到某个缩放级别,同时移动到geoPoint?类似于官方Googl eMaps应用程序在您搜索之后缩放到某个地址的方式,这就是我想要做的事情。

1 个答案:

答案 0 :(得分:1)

我会做类似的事情:

_mapController.animateTo(new GeoPoint(googleLat,googleLong), new Runnable() {
 public void run()
 {
  _mapController.zoomIn ();
 }
});

这将实现平移然后缩放效果。您可以在runnable中尝试相同的逻辑来执行多步骤缩放。