Détection des appuis longs dans Android pour OpenGL-ES
Dans la programmation Android, la détection des appuis longs est essentielle pour diverses interactions utilisateur. Traditionnellement, les développeurs s'appuient sur la méthode onTouchEvent(MotionEvent event) pour détecter les événements tactiles. Cependant, cette méthode n'offre pas de fonctionnalité dédiée à la détection des appuis longs.
Approches alternatives
Comme mentionné dans votre question, une approche de contournement consiste à s'inscrire à la fois à ACTION_DOWN et à ACTION_UP touch. événements et calculer le temps écoulé entre les deux. Bien que cela puisse simuler une détection d'appuis longs, cela nécessite une gestion explicite de la minuterie et une détermination manuelle du seuil.
Utilisation de GestureDetector
Heureusement, Android fournit une solution plus robuste pour la détection d'appuis longs. : la classe GestureDetector. GestureDetector simplifie le processus en surveillant automatiquement les événements tactiles et en détectant les gestes, y compris les appuis longs. Voici comment l'implémenter :
<code class="java">GestureDetectorCompat gestureDetector = new GestureDetectorCompat(context, new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent ev) { // Handle initial touch return true; } @Override public void onShowPress(MotionEvent ev) { // Triggered when a long press is detected } // Other gesture listening methods }); @Override public boolean onTouchEvent(MotionEvent event) { gestureDetector.onTouchEvent(event); return super.onTouchEvent(event); }</code>
Dans cet exemple, GestureDetectorCompat est créé et configuré avec une implémentation de GestureDetector.OnGestureListener. Les méthodes onDown et onShowPress gèrent respectivement la détection du toucher initial et de l'appui long. La méthode onTouchEvent enregistre le GestureDetector pour la surveillance des événements tactiles.
Conclusion
En tirant parti de GestureDetector, vous obtenez une solution fiable et efficace pour détecter les pressions longues dans votre Android OpenGL- Applications ES sans avoir besoin d'une gestion manuelle de la minuterie ou d'une détermination de seuil.
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!