如何禁用MapView的平移/缩放功能(不是缩放控件,我想要一个完全静态的地图)?
我也注意到触摸地图似乎没有触发MapView onClickListener,有人可以详细说明原因吗?
答案 0 :(得分:21)
对于Google Maps API for Android的第2版,这就是:
map.getUiSettings().setScrollGesturesEnabled(false);
答案 1 :(得分:14)
这保证可以正常工作
mapView.getMap().getUiSettings().setAllGesturesEnabled(false);
答案 2 :(得分:11)
在布局文件中使用android:clickable="false"
。
答案 3 :(得分:1)
请使用叠加功能在地图上获取点击事件
http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/Overlay.html
答案 4 :(得分:1)
我有同样的问题,以下解决方案是我能找到的最符合我的要求的解决方案:
mapView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(event.getPointerCount() > 1) {
return true;
}
return false;
}
});
由Alexander Stolz在此发布:
How to disable pinch in Android MapView
原因如下:
它不会完全禁用点击mapView - 它只会抓取&防止双指手势(用于缩放,您需要两根手指) - 点击地图(例如在叠加层上)仍然有效。
答案 5 :(得分:0)
这是正确的方法
@Override
public boolean dispatchTouchEvent(MotionEvent ev)
{
switch (ev.getAction()&MotionEvent.ACTION_MASK)
{
case (MotionEvent.ACTION_DOWN):
{
// do what you want
// you may scroll map where you want
// don't use 'break', the same in case pointer events;
//break;
return true;
}
}
// 'super' go to the mapView procedures and scroll map in own algorithm
return super.dispatchTouchEvent(ev);
}
答案 6 :(得分:0)
在 onMapReady 方法上,添加以下代码行
gMap.getUiSettings().setZoomGesturesEnabled(false);
禁用所有猜测
gMap.getUiSettings().setAllGesturesEnabled(false);
快乐的编码:)