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

Как вы можете отключить функцию щипка или мультитач в Android MapView?


person Alexander Stolz    schedule 07.01.2011    source источник


Ответы (3)


Отключить все жесты:

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

Отключить только зум

mapView.getMap().getUiSettings().setZoomControlsEnabled(false);
person Taranfx    schedule 24.12.2013

Мне потребовалось немного времени, но у меня есть решение для этого. Что я сделал, так это остановил распространение события, если более одного пальца касаются экрана.

mapView.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getPointerCount() > 1) {
                return true;
            }
            return false;
        }
    });
person Alexander Stolz    schedule 07.01.2011
comment
Я обнаружил, что когда вы используете mapView.setBuiltInZoomControls(true);, onTouch() вызывается только один раз (в первый раз), так что этот метод бесполезен... Вы думаете, это ошибка MapView? - person Murphy; 21.04.2011
comment
Я не могу сказать. В моем приложении я поставил setBuiltInZoomControls на false и реализовал свои собственные элементы управления. - person Alexander Stolz; 27.05.2011
comment
я пробовал это, это не работает, если вы используете встроенные элементы управления масштабированием - person user590849; 26.08.2011
comment
для этого должно быть другое решение - person user590849; 26.08.2011
comment
+1 Да это он! Он вызывается на моем устройстве каждый раз, когда пользователь пытается использовать два пальца, чтобы сделать... ну что угодно :). Благодаря этому решению постукивание по-прежнему работает — отлично! - person AgentKnopf; 22.04.2012
comment
да это единственный способ сделать это. - person gregm; 23.07.2012

Вот небольшой трюк, чтобы обмануть масштабирование: P (установите уровень масштабирования и установите тот же уровень, что и maxZoom

var myOptions1 = { 
            //Coordinates of the map's center
            center: new google.maps.LatLng(152,125), 
            //Zoom level
            zoom: 15, // or any level of zoom you want to preload your map
            maxZoom:15 // same as the zoom value makes sure the map is not zoomed,

//Другие варианты в соответствии с вашими требованиями

person Yamu    schedule 01.04.2015