如何使用 OpenGL-ES 检测 Android 中的长按
检测用户何时按下由 OpenGL-ES 渲染的表面在应用程序中,开发人员通常使用 onTouchEvent(MotionEvent event) 方法。但是,此方法没有用于检测长点击的内置功能。
一种方法是注册 ACTION_DOWN 事件。然后,在onTouchEvent中,安排一个Runnable在一定的时间延迟后运行。如果Runnable在运行之前被取消,由于ACTION_UP或ACTION_MOVE事件,则表明用户没有执行长按。
或者,Android提供了更复杂的解决方案:GestureDetector,可以使用检测各种手势,包括长按。
使用 GestureDetector
要使用 GestureDetector,请按照下列步骤操作:
以下是使用 GestureDetector 检测长按的示例:
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.
}
}
通过使用 GestureDetector,您可以轻松检测 OpenGL-ES 应用程序中的长按。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3