Maison > Java > javaDidacticiel > Comment détecter les clics longs dans les applications Android OpenGL-ES ?

Comment détecter les clics longs dans les applications Android OpenGL-ES ?

Patricia Arquette
Libérer: 2024-11-03 07:40:03
original
1024 Les gens l'ont consulté

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

Comment détecter les clics longs dans Android à l'aide d'OpenGL-ES

Pour détecter le moment où l'utilisateur appuie sur une surface rendue par un OpenGL-ES application, les développeurs utilisent généralement la méthode onTouchEvent(MotionEvent event). Cependant, cette méthode ne dispose pas de fonctionnalité intégrée pour détecter les clics longs.

Une approche consiste à s'inscrire à l'événement ACTION_DOWN. Ensuite, dans onTouchEvent, planifiez l'exécution d'un Runnable après un certain délai. Si le Runnable est annulé avant son exécution, en raison d'un événement ACTION_UP ou ACTION_MOVE, cela indique que l'utilisateur n'a pas effectué de clic long.

Alternativement, Android propose une solution plus sophistiquée : GestureDetector, qui peut être utilisée pour détecter une variété de gestes, y compris les clics longs.

Utilisation de GestureDetector

Pour utiliser GestureDetector, suivez ces étapes :

  1. Créez un instance de GestureDetector.
  2. Remplacez la méthode onTouchEvent dans votre activité ou fragment.
  3. Dans onTouchEvent, transmettez l'événement tactile à l'instance de GestureDetector à l'aide de gesteDetector.onTouchEvent(event).
  4. Enregistrez un OnGestureListener auprès du GestureDetector pour détecter les clics longs.

Voici un exemple d'utilisation de GestureDetector pour détecter les clics longs :

<code class="kotlin">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.
  }
}</code>
Copier après la connexion

En utilisant GestureDetector, vous pouvez facilement détecter clics longs dans vos applications OpenGL-ES.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal