"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como detectar cliques longos em aplicativos Android OpenGL-ES?

Como detectar cliques longos em aplicativos Android OpenGL-ES?

Publicado em 01/11/2024
Navegar:705

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

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:

  1. Crie um instância de GestureDetector.
  2. Substitua o método onTouchEvent em sua atividade ou fragmento.
  3. Em onTouchEvent, passe o evento de toque para a instância GestureDetector usando gestoDetector.onTouchEvent(event).
  4. Registre um OnGestureListener com o GestureDetector para detectar cliques longos.

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.

Tutorial mais recente Mais>

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