`
xiaoyaoniu
  • 浏览: 189151 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

GestureDetector.OnDoubleTapListener 和 GestureDetector.OnGestureListener

 
阅读更多

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。

分享到:
评论

相关推荐

    GestureDetector和SimpleOnGestureListener的使用教程

    SimpleOnGestureListener是一个抽象类,它实现了OnGestureListener和OnDoubleTapListener两个接口。这个类提供了多种手势处理方法,例如onSingleTapUp、onLongPress、onScroll等。这些方法可以被重写,以便处理不同...

    GestureDetector的实现

    开发者可以通过继承`GestureDetector.SimpleOnGestureListener`或实现`GestureDetector.OnGestureListener`和`GestureDetector.OnDoubleTapListener`接口来定制手势行为。 首先,我们创建一个`GestureDetector`实例...

    Android手势识别器GestureDetector使用详解

    这些构造方法需要传入一个GestureDetector.onGestureListener对象和一个Context对象,用于初始化GestureDetector对象。 GestureDetector.onGestureListener接口 GestureDetector.onGestureListener是一个接口,需要...

    GestureDetector类及其用法.doc

    GestureDetector 提供了两个主要的外部接口:OnGestureListener 和 OnDoubleTapListener。此外,它还包含一个内部类 SimpleOnGestureListener,用于方便地实现这些接口中的常用功能。 1. GestureDetector....

    OnGestureListener+OnDoubleTapListener

    例如,可能定义一个名为 `GestureDetectorDemo` 的类,重写 `OnGestureListener` 和 `OnDoubleTapListener` 的所有方法,然后在 `onCreate` 方法中初始化 `GestureDetector` 并设置监听器。 ```java public class ...

    GestureDetector类及其用法.pdf

    3. **`SimpleOnGestureListener`类**:这是`GestureDetector`的一个子类,实现了`OnGestureListener`和`OnDoubleTapListener`接口,提供了一些默认的行为。开发者可以基于这个类创建自己的监听器,只需覆盖需要...

    利用GestureDetector实现页面滑动Demo

    `GestureDetector`主要包含两个核心接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`提供了处理滑动(swipe)、轻触(tap)等基本手势的方法,而`OnDoubleTapListener`则用于处理双击...

    Android触摸屏手势

    GestureDetector还提供了一个OnDoubleTapListener接口,用于处理双击手势。 2. GestureOverlayView: GestureOverlayView允许用户在界面上绘制手势,然后通过OnGestureListener或OnGesturePerformedListener接口...

    Android GestureDetector用户手势检测实例讲解

    3. `SimpleOnGestureListener`内部静态类:实现了`OnGestureListener`和`OnDoubleTapListener`接口的所有方法,但默认为空实现,方便开发者只需重写所需的方法即可。 二、`GestureDetector.OnGestureListener`接口...

    Android 滑动翻页源码.zip

    GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调函数: 1. onDoubleTap(MotionEvent e):通知DoubleTap手势, 2. onDoubleTapEvent(MotionEvent e):...

    Android 滑动翻页源码

    GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调函数: 1. onDoubleTap(MotionEvent e):通知DoubleTap手势, 2. onDoubleTapEvent(MotionEvent e):...

    Android的手势操作(Gesture)

    首先,GestureDetector类包含三个主要的监听器接口:OnGestureListener、OnDoubleTapListener和SimpleOnGestureListener。开发者可以根据需求选择合适的监听器来处理各种手势事件。 1. OnGestureListener:这个接口...

    手势识别实现

    `GestureDetector`包含两个主要的接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`处理滑动、长按、快速点击等基本手势,而`OnDoubleTapListener`则专门处理双击事件。在`...

    Android触摸及手势操作GestureDetector

    `GestureDetector`类提供了两个主要的接口:`OnGestureListener`和`OnDoubleTapListener`。`OnGestureListener`用于处理基本手势,如滑动和长按,而`OnDoubleTapListener`则专注于双击相关的事件。 实现`...

    touch:有一个简单的演示,展示了GestureDetector如何与GestureDetector一起工作

    `GestureDetector`是Android SDK提供的一种工具类,它可以帮助我们方便地识别和处理常见的手势,如单击、滑动、双击等。这个名为"touchDemo"的项目就是用来演示`GestureDetector`如何与`GestureDetector`配合工作的...

    L12-ScalableImageView-讲义.pdf

    创建 `GestureDetector` 对象时,我们需要传递一个实现了 `OnGestureListener` 接口的对象。这个接口定义了几个关键的回调方法,例如: 1. `onDown(MotionEvent e)`:当用户按下屏幕时会被调用,返回 `true` 表示...

    Android 手势滑动源码.rar

    GestureDetector包含两个主要接口:OnGestureListener和OnDoubleTapListener。通过实现这些接口,开发者可以自定义对不同手势的响应。 2. MotionEvent:当用户触摸屏幕时,系统会生成MotionEvent对象,它包含了关于...

    GestureDetector

    - 首先,创建一个`GestureDetector.SimpleOnGestureListener`的子类,或者直接在构造函数中提供一个`OnGestureListener`或`OnDoubleTapListener`实例。 - 在子类中,重写需要处理的手势回调方法。 - 创建`...

    理解Android的手势识别提高APP的用户体验

    开发者可以通过实现GestureDetector的OnGestureListener和OnDoubleTapListener接口来处理不同的手势行为。 OnGestureListener接口定义了以下几个方法: 1. onDown(MotionEvent e):当用户首次按下屏幕时触发,标志...

Global site tag (gtag.js) - Google Analytics