Como detectar cliques longos no Android usando OpenGL-ES
Para detectar quando o usuário pressiona uma superfície que está sendo renderizada por um OpenGL-ES aplicativo, os desenvolvedores normalmente usam o método onTouchEvent(MotionEvent event). No entanto, esse método não possui funcionalidade integrada para detectar cliques longos.
Uma abordagem é registrar-se no evento ACTION_DOWN. Em seguida, em onTouchEvent, agende um Runnable para ser executado após um determinado atraso. Se o Runnable for cancelado antes de ser executado, devido a um evento ACTION_UP ou ACTION_MOVE, isso indica que o usuário não realizou um clique longo.
Como alternativa, o Android oferece uma solução mais sofisticada: GestureDetector, que pode ser usada para detectar uma variedade de gestos, incluindo cliques longos.
Usando o GestureDetector
Para usar o GestureDetector, siga estas etapas:
Aqui está um exemplo de uso do GestureDetector para detectar cliques longos:
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.
}
}
Ao usar o GestureDetector, você pode detectar facilmente cliques longos em seus aplicativos OpenGL-ES.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3