禁用com.google.android.maps.MapView中的平移/缩放

时间:2010-09-01 07:20:12

标签: android android-mapview

如何禁用MapView的平移/缩放功能(不是缩放控件,我想要一个完全静态的地图)?

我也注意到触摸地图似乎没有触发MapView onClickListener,有人可以详细说明原因吗?

7 个答案:

答案 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)

答案 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);

快乐的编码:)