android.view.GestureDetector.OnDoubleTapListener
一个activity中new一个GestureDetector之后,里面会实现一下的方法:
onSingleTapUp
onShowPress
onScroll
onLongPress
onFling
onDown
说一下这些方法都是由那些MotionEvent触发的
今天的项目用到了onSingleTapUp和onShowPress和onLongPress和onFling;
1、onSingleTapUp、onSingleTapConfirmed
用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
这个事件执行的顺序是onDown-》onShowPress-》onSingleTapUp
区别:
点击一下非常快的(不滑动)Touchup:onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑 动)Touchup:onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
2、onShowPress
用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
它与onDown()的区别,强调的是没有松开或者拖动的状态
3、onDown
而onDown也是由一个MotionEvent ACTION_DOWN触发的,但是他没有任何限制,也就是说当用户点击的时候,首先MotionEvent ACTION_DOWN,onDown就会执行,如果在按下的瞬间没有松开或者是拖动的时候onShowPress就会执行,如果是按下的时间超过瞬间(这块我也不太清楚瞬间的时间差是多少,一般情况下都会执行onShowPress),拖动了,就不执行onShowPress。
4、onLongPress
用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
这个事件执行的顺序是onDown-》onShowPress-》onLongPress
5、onFling
用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发,可以叫甩动时触发事件
6、onScroll
Touch了 滑动时触发。
另外需要说的一点就是:
如果你是在一个大的view上装载了一个一个的小view,如果你想让大的view有界面动态效果(比如左右向下滑动),那么你必须将这些小的view加入setOnTouchListener,然后你可以在OnTouchListener方法中加入如下方法将你的MotionEvent事件传到gestureDetector中。如下:
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE: {
gestureDetector.onTouchEvent(event);
break;
}// inner case MOVE
case MotionEvent.ACTION_UP: {
v.setPressed(false);
Log.i("cat", "CCCCCCCCCCCCCCCC");
gestureDetector.onTouchEvent(event);
// TODO animation
return true;
}// inner case UP
case MotionEvent.ACTION_DOWN: {
v.setPressed(true);
gestureDetector.onTouchEvent(event);
break;
}// inner case UP
}// inner switch
6、滑动屏幕效果GestureDetector、OnGestureListener、ViewFlipper
通过GestureDetector、OnGestureListener实现滑屏事件。ViewFlipper是继承至FrameLayout的,所以它是一个Layout里面可以放置多个View。示例中第一页仅放了一个按钮BUTTON,向下滑屏时,每页都只放了一个TEXTVIEW。
分享到:
相关推荐
SimpleOnGestureListener是一个抽象类,它实现了OnGestureListener和OnDoubleTapListener两个接口。这个类提供了多种手势处理方法,例如onSingleTapUp、onLongPress、onScroll等。这些方法可以被重写,以便处理不同...
开发者可以通过继承`GestureDetector.SimpleOnGestureListener`或实现`GestureDetector.OnGestureListener`和`GestureDetector.OnDoubleTapListener`接口来定制手势行为。 首先,我们创建一个`GestureDetector`实例...
这些构造方法需要传入一个GestureDetector.onGestureListener对象和一个Context对象,用于初始化GestureDetector对象。 GestureDetector.onGestureListener接口 GestureDetector.onGestureListener是一个接口,需要...
GestureDetector 提供了两个主要的外部接口:OnGestureListener 和 OnDoubleTapListener。此外,它还包含一个内部类 SimpleOnGestureListener,用于方便地实现这些接口中的常用功能。 1. GestureDetector....
例如,可能定义一个名为 `GestureDetectorDemo` 的类,重写 `OnGestureListener` 和 `OnDoubleTapListener` 的所有方法,然后在 `onCreate` 方法中初始化 `GestureDetector` 并设置监听器。 ```java public class ...
3. **`SimpleOnGestureListener`类**:这是`GestureDetector`的一个子类,实现了`OnGestureListener`和`OnDoubleTapListener`接口,提供了一些默认的行为。开发者可以基于这个类创建自己的监听器,只需覆盖需要...
`GestureDetector`主要包含两个核心接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`提供了处理滑动(swipe)、轻触(tap)等基本手势的方法,而`OnDoubleTapListener`则用于处理双击...
GestureDetector还提供了一个OnDoubleTapListener接口,用于处理双击手势。 2. GestureOverlayView: GestureOverlayView允许用户在界面上绘制手势,然后通过OnGestureListener或OnGesturePerformedListener接口...
3. `SimpleOnGestureListener`内部静态类:实现了`OnGestureListener`和`OnDoubleTapListener`接口的所有方法,但默认为空实现,方便开发者只需重写所需的方法即可。 二、`GestureDetector.OnGestureListener`接口...
GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调函数: 1. onDoubleTap(MotionEvent e):通知DoubleTap手势, 2. onDoubleTapEvent(MotionEvent e):...
GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调函数: 1. onDoubleTap(MotionEvent e):通知DoubleTap手势, 2. onDoubleTapEvent(MotionEvent e):...
首先,GestureDetector类包含三个主要的监听器接口:OnGestureListener、OnDoubleTapListener和SimpleOnGestureListener。开发者可以根据需求选择合适的监听器来处理各种手势事件。 1. OnGestureListener:这个接口...
`GestureDetector`包含两个主要的接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`处理滑动、长按、快速点击等基本手势,而`OnDoubleTapListener`则专门处理双击事件。在`...
`GestureDetector`类提供了两个主要的接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`用于处理基本手势,如滑动和长按,而`OnDoubleTapListener`则专注于双击相关的事件。 实现`...
`GestureDetector`是Android SDK提供的一种工具类,它可以帮助我们方便地识别和处理常见的手势,如单击、滑动、双击等。这个名为"touchDemo"的项目就是用来演示`GestureDetector`如何与`GestureDetector`配合工作的...
创建 `GestureDetector` 对象时,我们需要传递一个实现了 `OnGestureListener` 接口的对象。这个接口定义了几个关键的回调方法,例如: 1. `onDown(MotionEvent e)`:当用户按下屏幕时会被调用,返回 `true` 表示...
GestureDetector包含两个主要接口:OnGestureListener和OnDoubleTapListener。通过实现这些接口,开发者可以自定义对不同手势的响应。 2. MotionEvent:当用户触摸屏幕时,系统会生成MotionEvent对象,它包含了关于...
- 首先,创建一个`GestureDetector.SimpleOnGestureListener`的子类,或者直接在构造函数中提供一个`OnGestureListener`或`OnDoubleTapListener`实例。 - 在子类中,重写需要处理的手势回调方法。 - 创建`...
开发者可以通过实现GestureDetector的OnGestureListener和OnDoubleTapListener接口来处理不同的手势行为。 OnGestureListener接口定义了以下几个方法: 1. onDown(MotionEvent e):当用户首次按下屏幕时触发,标志...