本文共 2432 字,大约阅读时间需要 8 分钟。
正文
一、结构
public class GestureDetector extends Object
java.lang.Object
android.view.GestureDetector
二、概述
通过系统提供的来监测各种手势和(触摸)事件。当一个指定的手势事件发生时,
回调函数将通告用户。这个类仅仅处理由触摸引发的
(不能处理由轨迹球引发的事件)。要使用这个类需执行以下操作:
* 为你的建立一个GestureDetector实例。
* 在View的方法里确保调用(GestureDetector的)方法。当相关事件发生时,定义在回调函数里的方法将被执行。
三、嵌套类
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 ( listener, handler)
已弃用,替代方法:
通过提供的监听器来创建一个GestureDetector,这个构造函数只能用于非UI线程(因为它允许指定一个handler)。
参数
listener 用于触发所有回调函数的监听器,不能为空
handler 需要使用到的handler
异常
Listener或者handler为空时
public GestureDetector ( listener)
已弃用,替代方法:
通过提供的监听器来创建一个GestureDetector。你只能于UI线程里使用这个构造函数(这是通常的情况)
参数
listener 用于触发所有回调函数的监听器,不能为空
异常
如果Listener为空
参见
public GestureDetector ( context, listener)
通过提供的监听器来创建一个GestureDetector。(通常情况下)你只能于UI线程里使用这个构造函数
参数
context 应用程序上下文
listener 用于触发所有回调函数的监听器,不能为空
异常
如果Listener为空
参见
public GestureDetector ( context, listener, handler)
通过提供的监听器来创建一个GestureDetector. (通常情况下)你只能于UI线程里使用这个构造函数
参数
context 应用程序上下文
listener 用于触发所有回调函数的监听器,不能为空
handler 需要使用到的handler
异常
如果Listener为空
参见
public GestureDetector ( context, listener, handler, boolean ignoreMultitouch)
通过提供的监听器来创建一个GestureDetector. (通常情况下)你只能于UI线程里使用这个构造函数
参数
context 应用程序上下文
listener 用于触发所有回调函数的监听器,不能为空
handler 需要使用到的handler
ignoreMultitouch 是否忽视多点触控(译者注:仅适用于2.2以上的android版本,如果没设置这个参数(即使用的是上一个构造函数),则会忽视多点触控
,由于网上都没有在GestureDetector传入handler的例子,所以我也不明白这里的handler的具体用意。如果有需要深入理解的朋友,请参照GestureDetector的源码
异常
如果Listener为空
参见
五、公共方法
public boolean isLongpressEnabled ()
返回值
如果允许长按事件,则返回true,否则为false
public boolean onTouchEvent ( ev)
分析指定的动作事件,如何满足条件,就触发在中提供的回调函数
参数
ev 当前的触摸事件(译者注:如MotionEvent_DOWN, MotionEvent_UP)
返回值
如果消耗了这个事件,则返回true,否则返回false
public void setIsLongpressEnabled (boolean isLongpressEnabled)
设置是否启用长按。如果启用长按,当用户按下并保持按下状态时,将收到一个长按事件,同时不再接收其它事件;如果禁用长按,当用户按下并保持按下状态然后再移动手指时,将会接收到scroll事件。长按默认为启用。
参数
isLongpressEnabled 是否启用接收长按事件
public void setOnDoubleTapListener ( onDoubleTapListener)
设置双击及其相关手势的监听器
参数
onDoubleTapListener 触发所有回调函数的监听器,或者设为null以停止监听双击的手势
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582415,如需转载请自行联系原作者