«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обнаружить длинные клики в приложениях Android OpenGL-ES?

Как обнаружить длинные клики в приложениях Android OpenGL-ES?

Опубликовано 1 ноября 2024 г.
Просматривать:385

How to Detect Long Clicks in Android OpenGL-ES Applications?

Как обнаружить длинные клики в Android с помощью OpenGL-ES

Чтобы определить, когда пользователь нажимает на поверхность, отображаемую с помощью OpenGL-ES приложения разработчики обычно используют метод onTouchEvent(событие MotionEvent). Однако этот метод не имеет встроенной функции обнаружения длинных кликов.

Один из подходов — зарегистрироваться для события ACTION_DOWN. Затем в onTouchEvent запланируйте запуск Runnable после определенной задержки. Если Runnable отменяется до его запуска из-за события ACTION_UP или ACTION_MOVE, это указывает на то, что пользователь не выполнил длинный щелчок мыши.

В качестве альтернативы Android предоставляет более сложное решение: GestureDetector, которое можно использовать для обнаружения различных жестов, включая длинные щелчки мышью.

Использование GestureDetector

Чтобы использовать GestureDetector, выполните следующие действия:

  1. Создайте экземпляр GestureDetector.
  2. Переопределите метод onTouchEvent в своем действии или фрагменте.
  3. В onTouchEvent передайте событие касания экземпляру GestureDetector с помощью GestureDetector.onTouchEvent(event).
  4. Зарегистрируйте OnGestureListener с помощью GestureDetector для обнаружения длинных кликов.

Вот пример использования GestureDetector для обнаружения длинных кликов:

class MyActivity : AppCompatActivity() {

  private lateinit var gestureDetector: GestureDetector

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    gestureDetector = GestureDetector(this, LongClickListener())
  }

  override fun onTouchEvent(event: MotionEvent): Boolean {
    gestureDetector.onTouchEvent(event)
    return super.onTouchEvent(event)
  }

  inner class LongClickListener : OnGestureListener {

    override fun onLongPress(e: MotionEvent?) {
      // Handle long click here.
    }

    // Implement other gesture methods as needed.
  }
}

Используя GestureDetector, вы можете легко обнаружить длинные щелчки мышью в приложениях OpenGL-ES.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3