`
neeleon
  • 浏览: 184050 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GestureDetector手势识别类

阅读更多

  boolean  onDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发
boolean  onDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
boolean  onDown(MotionEvent e)
解释:Touch down时触发
boolean  onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。
void  onLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发
boolean  onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。
void  onShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发
(与onDown,onLongPress比较
onDown只要Touch down一定立刻触发。
而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。

boolean  onSingleTapConfirmed(MotionEvent e)
boolean  onSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。

点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed

点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed

有了这么多的响应方式,我们能更加方便的对用户的触摸操作进行响应,对各种动作都有所对应。那么这个类如何使用呢,其实非常简单,在view的新建一个GestureDetector的对象。
构造函数里
gestureDetector = new GestureDetector(new SelfGestureDetectorListener());

然后在View的onTouchEvent里以下这样用,就可以在gestureDetector的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
}

有关上面的 onTouchEvent方法,我们可以直接判断MotionEvent的类型,对于手势移动仅仅捕获ACTION_MOVE即可,我们通过参数 MotionEvent e1, MotionEvent e2,float distanceX, float distanceY可以获取操作变化。

  比如 distanceX > 0 向右边移动,distanceX < 0 则向左边,distanceY > 0 向上滚动, distanceY < 0 向下滚动。测试时我们可以封装该类,每个方法触发时使用Logcat打印出动作和x,y坐标即可了解实际的状况,更深入和复杂的手势探测

分享到:
评论

相关推荐

    GestureDetector手势识别.zip

    在这个"GestureDetector手势识别.zip"项目中,我们可以推测它可能包含了一个实现手势识别的示例或者库,便于开发者理解和应用手势识别技术。 首先,我们来讨论一下人体关键点检测。这是计算机视觉领域的一个子课题...

    android开发之GestureDetector手势识别调节音量亮度快进和后退源码.zip

    android开发之GestureDetector手势识别调节音量亮度快进和后退源码.zip【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能...

    android开发GestureDetector手势识别调节音量亮度快进和后退完整源码

    在Android开发中,手势...通过深入理解`GestureDetector`的工作原理和API,你可以创建更复杂、更具个性化的手势识别系统。记得在实际开发中,一定要测试不同设备和屏幕尺寸下的兼容性,确保手势识别的稳定性和一致性。

    android使用gesturedetector手势识别示例分享

    在Android开发中,手势识别是实现用户交互的关键部分,它允许用户通过触摸屏幕的各种动作来控制应用程序。`GestureDetector`是Android SDK提供的一种用于识别基本手势的类,如单击、双击、滑动和长按等。在这个示例...

    Android手势识别GestureDetector分析

    在Android系统中,每一次手势交互都会依照以下顺序执行。 1. 接触接触屏一刹那,触发一个MotionEvent事件。 2. 该事件被OnTouchListener监听,在其...3. 通过GestureDetector(手势识别器)转发次MotionEvent对象。

    Android手势识别源码

    1. **手势识别基础**:Android SDK提供了GestureDetector类,它是手势识别的核心。GestureDetector能够处理基本的滑动(Swipe)、轻击(Tap)以及长按(Long Press)等手势。开发者可以通过覆写GestureDetector的...

    滑屏动画,手势识别

    为了在ViewPager中集成手势识别,我们需要在ViewPager的子项视图中添加GestureDetector,监听用户的滑动手势,然后根据手势进行相应的操作,比如跳转到下一页或上一页。 对于软件引导页,通常会包含一系列展示应用...

    手势识别demo

    在Android平台上,手势识别主要依赖于`GestureDetector`类。这个类是Android SDK提供的一个接口,用于检测常见的触摸屏手势,如滑动、点击、双击等。`GestureDetectorOverlayView`是这个demo中可能使用的一个自定义...

    android 手势识别学习

    本教程将聚焦于Android手势识别的实现,主要关注`GestureDetector`类。 `GestureDetector`是Android SDK中的一个核心组件,用于处理基本的手势检测。它处理了滑动(swipe)、点击(tap)和长按(long press)等常见...

    手势识别的Demo

    在Android中,手势识别主要通过`GestureDetector`类来实现。`GestureDetector`是Android SDK提供的一个内置工具,它可以识别出如滑动、点击、长按等常见手势。首先,你需要创建一个`GestureDetector`的实例,并重写...

    Android应用源码之(触屏手势识别).zip

    首先,Android系统提供了`GestureDetector`类来处理基本的手势识别,如单击、双击、长按和滑动。开发者可以通过创建一个`GestureDetector`的实例,并重写其回调方法来处理各种手势事件。例如: ```java ...

    android手势识别

    1. GestureDetector类:这是Android SDK提供的一种内置手势识别工具。它可以识别滑动、点击、双击、长按等基本手势。开发者可以通过重写GestureDetector的onDown(), onFling()等回调方法来处理不同手势。 2. ...

    android手势库识别

    在Android开发中,手势识别是提升用户体验的重要一环。Android手势库识别主要涉及的是如何让应用能够理解并响应用户的触摸动作,从而实现更直观、更便捷的交互方式。本教程适用于初学者,将深入探讨如何在Android...

    安卓 android 用户自定义手势 手势识别

    GestureDetector类提供了更底层的接口,允许开发者自定义手势识别逻辑。你可以创建一个GestureDetector实例,重写onDown(), onFling(), onScroll()等方法来处理不同类型的触摸事件。 3. 使用MotionEvent事件: 最...

    安卓的手势识别Demo

    Android系统提供了GestureDetector和SimpleOnGestureListener两个核心类来支持手势识别。GestureDetector负责处理触摸事件,而SimpleOnGestureListener则定义了一系列回调方法,用于监听各种手势动作。 1. **...

    android手势识别源码讲解

    首先,Android的手势识别主要依赖于`GestureDetector`和`ScaleGestureDetector`这两个内置类。`GestureDetector`用于处理基本的单指和双指触摸事件,如单击、长按、滑动等。而`ScaleGestureDetector`则专门处理双指...

    android 之GestureOverlayView手势识别

    `Gesture`类是Android手势识别的核心,它包含了手势的所有轨迹点信息。通过`Gesture`对象,我们可以使用`GestureLibrary`和`GestureDetector`进行手势的识别和比较。`GestureLibrary`用于存储预定义的手势,而`...

Global site tag (gtag.js) - Google Analytics