Установка onDragListener для моей карты? - PullRequest
0 голосов
/ 03 февраля 2012

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

mapView.setOnDragListener(new View.OnDragListener() {
        public boolean onDrag(View v, DragEvent event) {
            Log.i(PREFS_NAME, "X:" + String.valueOf(event.getX()));
            Log.i(PREFS_NAME, "Y:" + String.valueOf(event.getY()));
            return false;
        }
    });

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

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

Это правильный способ сделать это?

1 Ответ

0 голосов
/ 19 июня 2012

MapViews не реагируют на сенсорные события, такие как onClick() и onLongPress().Что бы я сделал, прежде чем onCreate() добавить это:

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
    float x = ev.getX();
    float y = ev.getY();
    return super.dispatchTouchEvent(ev);
    }

x и y теперь будут содержать координаты экрана, которые нажимал пользователь.Надеюсь, это поможет!

...