2011-02-27 66 views
2

我试图通过在MapActivity类中实现OnZoomListener来限制我的地图的缩放级别。该监听器具有OnZoom()方法,当用户使用缩放控件时会自动调用该方法。现在在这个OnZoom()方法我已经投入:
public void onZoom(boolean zoomIn) {
int mylevel=map.getZoomLevel();
if(mylevel>15){
mc.zoomOut();
}

这里mc是我的地图控制器。
但这不工作......任何解决方案?
thx。OnZoom方法在MapActivity中不起作用

编辑:好吧......这没有得到任何解决方案:

+0

我确定很好奇,看到这个问题的相关答案。我需要完全相同的东西,并最终在屏幕上的每次触摸检查缩放 – zrgiu 2011-02-27 20:23:20

+0

你是什么意思不工作?崩溃还是什么?尝试更具体 – Reno 2011-02-27 21:56:47

+0

不......它只是没有工作...我设置的初始缩放到15 ..所以我期望,如果我放大甚至ince..itll再次缩小...,我可以提出一个吐司像:最大缩放水平达到...但我可以放大和...任何想法? – Urban 2011-02-28 11:00:44

回答

0

我看不到任何onZoom方法在MapActivity被重写 - 尝试@Override批注,你就会明白我的意思......嗯,至少当V 8_r1

+0

没有在MapActivity中没有,但是当你实现OnZoomListener到你的地图活动之后,你可以重写OnZoom方法... – Urban 2011-03-22 08:30:00

+0

好吧......得到它:) – 2011-03-22 12:51:25

0

我也有同样的问题。代替实现接口,添加以下代码在您的onCreate()

final MapView mapView = (MapView) findViewById(R.id.mapView); 
    ZoomButtonsController controller = mapView.getZoomButtonsController(); 
    controller.setOnZoomListener(new ZoomButtonsController.OnZoomListener() { 

     @Override 
     public void onZoom(boolean zoomIn) { 
      Log.i(TAG,"Inside onZoom. value is "+zoomIn); 
      if(zoomIn) 
       mapView.getController().zoomIn(); 
      else 
       mapView.getController().zoomOut(); 

     } 

     @Override 
     public void onVisibilityChanged(boolean visible) { 
      // TODO Auto-generated method stub 

     } 
    });