Можно ли отключить панорамирование / масштабирование в MapView для Android, позволяя пользователям нажимать на ItemizedOverlay? - PullRequest
2 голосов
/ 22 июня 2011

Есть ли способ отключить панорамирование / масштабирование и сохранить наложение карты активным?

Я специально думаю о ItemizedOverlay, который я хочу использовать, не позволяя пользователям перемещаться по области просмотра карты (это для игры).

Я видел тот же вопрос ответил, но, к сожалению, ответ не позволяет нажимать на элементы наложения.

Большое спасибо, с уважением, Alex

Ответы [ 2 ]

4 голосов
/ 23 февраля 2012

Я знаю, что этот вопрос немного устарел, но у меня была та же проблема, и я нашел обходной путь, это не изящное решение, но, кажется, работает.

Сначала вы должны создать собственный подкласс карты, переопределяющий обработчик 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.

0 голосов
/ 22 июня 2011

Попробуйте:

mapView.setBuiltInZoomControls(false);

Надеюсь, что это работает!Веселись!

...