2012-07-27 53 views
0

因此,在我当前的应用程序中,我想放大到一个纬度/长点,但也使用animateTo(或等效),以确保屏幕正确居中。目前,我只是在做这样的事情:缩放和动画点pointview android

_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 
      } 

这类作品,但发生的事情是,我的线程开始之前,“动画为”完成,所以它会放大,然后“跳”来显示正确的中心geoPoint。有没有办法平滑地“向下钻取”到某个缩放级别,以及同时移动到geoPoint?与官方Googl eMaps应用程序在您搜索完毕后放大地址的方式类似,我期待着做到这一点。

回答

1

我会做这样的事情:

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

这将实现泛当时的变焦效果。您可以在runnable中尝试使用相同的逻辑来执行多步骤缩放。