可以在Android MapView中禁用平移/缩放,同时允许用户点击ItemizedOverlay吗?

时间:2011-06-22 12:27:58

标签: android android-mapview zooming itemizedoverlay panning

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

我特别想到一个ItemizedOverlay,我希望它可以被拒绝,同时拒绝用户在地图的视口中移动(这是游戏)。

我已经看到the same question已经回答,但答案很遗憾不允许点击叠加项目。

非常感谢, 最好的祝福, 亚历

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:-1)

试试这个:

mapView.setBuiltInZoomControls(false);

希望有效!玩得开心!