Maison  >  Article  >  Java  >  Comment détecter les pressions longues dans les applications Android OpenGL-ES ?

Comment détecter les pressions longues dans les applications Android OpenGL-ES ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 17:45:02787parcourir

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

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!

Déclaration:
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