2011-01-07 33 views

回答

8

我花了一点时间,但我有一个解决方案。我所做的是在多个手指触摸屏幕时停止事件传播。

mapView.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getPointerCount() > 1) { 
       return true; 
      } 
      return false; 
     } 
    }); 
+0

我发现,当你使用'mapView.setBuiltInZoomControls(真);','onTouch()'只调用一次(第一次),所以这种方法是没有用的。 ..你认为这是一个MapView的错误? – Murphy

+0

我真的不知道。在我的应用程序中,我将setBuiltInZoomControls设置为false,并实现了我自己的控件。 –

+1

我已经尝试过,如果您使用的是内置的变焦控件,则不起作用 – user590849

8

禁用所有手势:

mapView.getMap().getUiSettings().setAllGesturesEnabled(false); 

仅禁用变焦

mapView.getMap().getUiSettings().setZoomControlsEnabled(false); 
-2

这里是一个小把戏来欺骗捏缩放:P(设置缩放级别,并设置相同的水平maxZoom

var myOptions1 = { 
      //Coordinates of the map's center 
      center: new google.maps.LatLng(152,125), 
      //Zoom level 
      zoom: 15, // or any level of zoom you want to preload your map 
      maxZoom:15 // same as the zoom value makes sure the map is not zoomed, 

//其他o ptions是按您的要求

0
final UiSettings uiSettings = map.getUiSettings(); 
uiSettings.setZoomControlsEnabled(true); 
uiSettings.setZoomGesturesEnabled(false);