Heim > Java > javaLernprogramm > Wie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?

Wie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?

Susan Sarandon
Freigeben: 2024-11-01 17:45:02
Original
895 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage