ITEEDU


GestureDetector

版本: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的使用教程