"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment détecter les clics longs dans les applications Android OpenGL-ES ?

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

Publié le 2024-11-01
Parcourir:230

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 lorsque 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, procédez comme suit :

  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 :

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.
  }
}

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3