如何禁用MapView的平移/缩放功能(不是缩放控件,我想要完全静态的地图)?
我还注意到点击地图似乎不会触发MapView的onClickListener,有人能解释一下为什么吗?
如何禁用MapView的平移/缩放功能(不是缩放控件,我想要完全静态的地图)?
我还注意到点击地图似乎不会触发MapView的onClickListener,有人能解释一下为什么吗?
对于Android上的Google Maps API的版本2,以下是正确的方式:
map.getUiSettings().setScrollGesturesEnabled(false);
这是保证会工作的
mapView.getMap().getUiSettings().setAllGesturesEnabled(false);
在您的布局文件中使用android:clickable="false"
。
MapView
是闭源的。没有人会回答你的onClickListener
问题。 - CommonsWare我曾经有同样的问题,以下解决方案是我能找到并且满足我的要求的最佳方案:
mapView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(event.getPointerCount() > 1) {
return true;
}
return false;
}
});
如Alexander Stolz在此处发布的:
这就是原因:
它并没有完全禁用对地图视图的点击 - 它只是抓住并阻止了双指手势(缩放需要两个手指) - 在地图上轻触(例如在覆盖层上)仍然有效。
这是正确的方式
@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);
}
gMap.getUiSettings().setZoomGesturesEnabled(false);
禁用所有手势
gMap.getUiSettings().setAllGesturesEnabled(false);
编程愉快 :)