Как различить жест и щелчок?

1

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

public boolean onTouchEvent(MotionEvent event) {
    if (gestureDetector.onTouchEvent(event)) {
        return true;
    } else {
        return super.onTouchEvent(event);
    }
}

И когда я начинаю жест, изображение помещается на экран. Пожалуйста помоги.

Теги:
android-layout

3 ответа

3
Лучший ответ

Проверьте здесь:

Обнаружение жестов при перемещении по сетке

  • 0
    Да, спасибо, это поможет. Я просто пропустил ту вещь, что за событием щелчка следует жест, если я возвращаю false как результат жеста.
  • 0
    Интересно, что setOnClickListener () требуется, даже если в нем нет логики (я переместил всю логику в onSingleTapUp ()
1

Как сказал Hyperboreus, используйте интерфейс GestureDetector.OnGestureListener, который вы связываете с вашим экземпляром GestureDetector. Нет необходимости ассоциировать прослушиватель кликов с вашим представлением и прослушиватель прикосновений. В частности, используйте метод GestureDetector.OnGestureListener.onSingleTapUp(MotionEvent) для обнаружения кликов, метод GestureDetector.OnGestureListener.onFling(MotionEvent, MotionEvent, float, float) для обнаружения flings и т.д. И т.д.

Не забудьте вернуть true в вашу реализацию метода GestureDetector.OnGestureListener.onDown(MotionEvent).

1

Используйте классы и интерфейсы из android.gesture, особенно OnGestureListener. ОС заботится о распознавании жестов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню