Отключить панорамирование / масштабирование в com.google.android.maps.MapView

Как я могу отключить функции панорамирования / масштабирования MapView (а не элементы управления масштабированием, я хочу полностью статичную карту)?

Я также заметил, что прикосновение к карте, похоже, не вызывает MapView onClickListener, может кто-нибудь объяснить почему?

Solutions Collecting From Web of "Отключить панорамирование / масштабирование в com.google.android.maps.MapView"

Используйте android:clickable="false" в вашем файле макета.

Для версии 2 API Карт Google для Android это способ:

 map.getUiSettings().setScrollGesturesEnabled(false); 

Это гарантировано для работы

 mapView.getMap().getUiSettings().setAllGesturesEnabled(false); 

Используйте Overlay, чтобы получить событие крана на карте

http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/Overlay.html

У меня был один и тот же вопрос, и следующее решение – лучшее, что я смог найти, и выполнил мои требования:

 mapView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getPointerCount() > 1) { return true; } return false; } }); 

Как писал Александр Штольц здесь:

Как отключить pinch в Android MapView

И вот причина:

Он не отключает клик на mapView полностью – он только захватывает и предотвращает два пальца жесты (для масштабирования вам нужно два пальца) – нажатие на карте (например, на Overlays) по-прежнему работает.

Это правильный путь

 @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); } 

По методу onMapReady , добавьте эти строки кода

 gMap.getUiSettings().setZoomGesturesEnabled(false); 

Отключить все варианты

 gMap.getUiSettings().setAllGesturesEnabled(false); 

Счастливое кодирование 🙂