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