Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

map.getUiSettings().setScrollGesturesEnabled(false);

Ответ 3

Это работает, чтобы работать

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

Ответ 5

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

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

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

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

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

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

Ответ 6

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

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

Ответ 7

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

gMap.getUiSettings().setZoomGesturesEnabled(false);

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

gMap.getUiSettings().setAllGesturesEnabled(false);

счастливое кодирование:)