2

有没有办法禁用平移/缩放并保持地图叠加层可点击?

我正在特别考虑一个 ItemizedOverlay,我希望它可以被点击,同时拒绝用户在地图的视口中移动(这是为了游戏)。

我已经看到回答了同样的问题,但遗憾的是,答案不允许点击覆盖项目。

非常感谢,最好的问候,亚历克斯

4

2 回答 2

4

我知道这个问题有点老了,但我遇到了同样的问题并找到了解决方法,这不是一个优雅的解决方案,但似乎有效。

首先,您必须创建自己的地图子类来覆盖 onTouchEvent 处理程序

public class NonPannableMapView extends MapView {

    public NonPannableMapView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);    
    }

    public NonPannableMapView(Context context, AttributeSet attrs){
        super(context, attrs);
    }

    public NonPannableMapView(Context context, String apiKey) {
         super(context, apiKey);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
          //Handle a move so there is no panning or zoom
          if(ev.getAction() == MotionEvent.ACTION_MOVE)
              return true;
      return super.onTouchEvent(ev);
    }
}

那么这只是将布局中的 MapView 引用更改为 NonPannableMapView 的情况。

于 2012-02-23T00:00:34.437 回答
-1

尝试这个:

mapView.setBuiltInZoomControls(false);

希望有效!玩得开心!

于 2011-06-22T12:30:53.103 回答