Erkennung langer Tastendrücke in Android für OpenGL-ES
Bei der Android-Programmierung ist die Erkennung langer Tastendrücke für verschiedene Benutzerinteraktionen unerlässlich. Traditionell haben sich Entwickler zur Erkennung von Berührungsereignissen auf die Methode onTouchEvent(MotionEvent event) verlassen. Diese Methode bietet jedoch keine spezielle Funktion zur Erkennung von langem Drücken.
Alternative Ansätze
Wie in Ihrer Frage erwähnt, besteht ein Workaround-Ansatz darin, sich sowohl für ACTION_DOWN als auch für ACTION_UP Touch zu registrieren Ereignisse und Berechnen der zwischen den beiden verstrichenen Zeit. Dies kann zwar die Erkennung von langem Drücken simulieren, erfordert jedoch eine explizite Timer-Verwaltung und manuelle Schwellenwertbestimmung.
Verwendung von GestureDetector
Glücklicherweise bietet Android eine robustere Lösung für die Erkennung von langem Drücken : die GestureDetector-Klasse. GestureDetector vereinfacht den Prozess, indem es Berührungsereignisse automatisch überwacht und Gesten erkennt, einschließlich langer Druckvorgänge. So implementieren Sie es:
<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>
In diesem Beispiel wird GestureDetectorCompat mit einer GestureDetector.OnGestureListener-Implementierung erstellt und konfiguriert. Die Methoden onDown und onShowPress verarbeiten die Erkennung der ersten Berührung bzw. des langen Drückens. Die onTouchEvent-Methode registriert den GestureDetector für die Überwachung von Berührungsereignissen.
Fazit
Durch die Nutzung von GestureDetector erhalten Sie eine zuverlässige und effiziente Lösung zur Erkennung langer Druckvorgänge in Ihrem Android OpenGL- ES-Anwendungen ohne die Notwendigkeit einer manuellen Timer-Verwaltung oder Schwellenwertbestimmung.
Das obige ist der detaillierte Inhalt vonWie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!