Android 中针对 OpenGL-ES 的长按检测
在 Android 编程中,检测长按对于各种用户交互至关重要。传统上,开发人员依赖 onTouchEvent(MotionEvent event) 方法来检测触摸事件。但是,此方法不提供专用的长按检测功能。
替代方法
正如您的问题中提到的,一种解决方法包括注册 ACTION_DOWN 和 ACTION_UP 触摸事件并计算两者之间经过的时间。虽然这可以模拟长按检测,但它需要明确的计时器处理和手动阈值确定。
利用 GestureDetector
幸运的是,Android 为长按检测提供了更强大的解决方案:GestureDetector 类。 GestureDetector 通过自动监控触摸事件和检测手势(包括长按)来简化流程。以下是如何实现它:
<code class="java">GestureDetectorCompat gestureDetector = new GestureDetectorCompat(context, new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent ev) { // Handle initial touch return true; } @Override public void onShowPress(MotionEvent ev) { // Triggered when a long press is detected } // Other gesture listening methods }); @Override public boolean onTouchEvent(MotionEvent event) { gestureDetector.onTouchEvent(event); return super.onTouchEvent(event); }</code>
在此示例中,使用 GestureDetector.OnGestureListener 实现创建并配置 GestureDetectorCompat。 onDown 和 onShowPress 方法分别处理初始触摸和长按检测。 onTouchEvent 方法注册 GestureDetector 来监控触摸事件。
结论
通过利用 GestureDetector,您可以获得可靠且高效的解决方案来检测 Android OpenGL 中的长按 - ES 应用程序无需手动计时器处理或阈值确定。
以上是如何检测 Android OpenGL-ES 应用程序中的长按?的详细内容。更多信息请关注PHP中文网其他相关文章!