版本:Android 2.3 r1
结构
继承关系
public class GestureDetector extends Object
java.lang.Object
android.view.GestureDetector
类概述
通过系统提供的MotionEvent
来监测各种手势和(触摸)事件。当一个指定的手势事件发生时,GestureDetector.OnGestureListener
回调函数将通告用户。这个类仅仅处理由触摸引发的MotionEvent
(不能处理由轨迹球引发的事件)。要使用这个类需执行以下操作:
l 为你的View
建立一个GestureDetector实例。
l 在View的onTouchEvent(MotionEvent)方法里确保调用(GestureDetector的)onTouchEvent(MotionEvent)方法。当相关事件发生时,定义在回调函数里的方法将被执行。
嵌套类
interface GestureDetector.OnDoubleTapListener
双击和轻击(confirmed single-tap)事件的监听器。(译者注:confirmed single-tap是用户快速点一下触摸屏所引发的动作。区分下面两种情况:
1. 手指按下,停留0.2秒(估计值)以上再抬起时,不算confirmed single-tap
2. 快速点击屏幕两次不会引发两次confirmed single-tap事件,而是引发一次DoubleTap事件。)
interface GestureDetector.OnGestureListener
在有手势动作发生时,通知的监听器
class GestureDetector.SimpleOnGestureListener
当只需要监听部分手势时,用于扩展的便捷类
构造函数
public GestureDetector (GestureDetector.OnGestureListener中提供的回调函数
参数
ev 当前的触摸事件(译者注:如MotionEvent_DOWN, MotionEvent_UP)
返回值
如果GestureDetector.OnGestureListener
消耗了这个事件,则返回true,否则返回false
public void setIsLongpressEnabled (boolean isLongpressEnabled)
设置是否启用长按。如果启用长按,当用户按下并保持按下状态时,将收到一个长按事件,同时不再接收其它事件;如果禁用长按,当用户按下并保持按下状态然后再移动手指时,将会接收到scroll事件。长按默认为启用。
参数
isLongpressEnabled 是否启用接收长按事件
public void setOnDoubleTapListener (GestureDetector.OnDoubleTapListener onDoubleTapListener)
设置双击及其相关手势的监听器
参数
onDoubleTapListener 触发所有回调函数的监听器,或者设为null以停止监听双击的手势
补充
文章链接
GestureDetector和SimpleOnGestureListener的使用教程