`
mengsina
  • 浏览: 191193 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GestureDetector类的用法

阅读更多
GestureDetector类定义了许多触摸事件。包括
   1.boolean  onDoubleTap(MotionEvent e)解释:双击的第二下Touch down时触发
   2.boolean  onDoubleTapEvent(MotionEvent e)解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
   3.boolean  onDown(MotionEvent e)解释:Touch down时触发
   4.boolean  onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)解释:Touch了滑动一点距离后,up时触发。
   5.void  onLongPress(MotionEvent e)解释:Touch了不移动一直Touch down时触发
   6.boolean  onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)解释:Touch了滑动时触发。
   7.void  onShowPress(MotionEvent e)解释:Touch了还没有滑动时触发(与onDown,onLongPress)比较onDown只要Touch down一定立刻触发。而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。
   8.boolean  onSingleTapConfirmed(MotionEvent e)
   9.boolean  onSingleTapUp(MotionEvent e)解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。
   点击一下非常快的(不滑动)Touchup:onDown->onSingleTapUp->onSingleTapConfirmed
   点击一下稍微慢点的(不滑动)Touchup:onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed



GestureDetector探测当前用户各种不同的操作手势,通过 GestureDetector.OnGestureListener callback来获取当前被触发的操作手势(Single Tap Up、Show Press、Long Press、Scroll、Down、Fling)。

使用方法:

01.private GestureDetector mGestureDetector;
02.@Override
03.public void onCreate(Bundle savedInstanceState) {
04.    super.onCreate(savedInstanceState);
05.    mGestureDetector = new GestureDetector(this, new LearnGestureListener());
06.}
07.@Override
08.public boolean onTouchEvent(MotionEvent event) {
09.    if (mGestureDetector.onTouchEvent(event))
10.        return true;
11.    else
12.        return false;
13.}
14.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener{
15.    @Override
16.    public boolean onSingleTapUp(MotionEvent ev) {
17.        Log.d("onSingleTapUp",ev.toString());
18.        return true;
19.    }
20.    @Override
21.    public void onShowPress(MotionEvent ev) {
22.        Log.d("onShowPress",ev.toString());
23.    }
24.    @Override
25.    public void onLongPress(MotionEvent ev) {
26.        Log.d("onLongPress",ev.toString());
27.    }
28.    @Override
29.    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
30.        Log.d("onScroll",e1.toString());
31.        return true;
32.    }
33.    @Override
34.    public boolean onDown(MotionEvent ev) {
35.        Log.d("onDownd",ev.toString());
36.        return true;
37.    }
38.    @Override
39.    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
40.        Log.d("d",e1.toString());
41.        Log.d("e2",e2.toString());
42.        return true;
43.    }
44.}
说明:
在当前类中创建一个GestureDetector实例。
1.private GestureDetector mGestureDetector;
创建一个Listener来实时监听当前面板操作手势。
1.class LearnGestureListener extends GestureDetector.SimpleOnGestureListener
在初始化时,将Listener实例关联当前的GestureDetector实例。
1.mGestureDetector = new GestureDetector(this, new LearnGestureListener());
利用onTouchEvent方法作为入口检测,通过传递MotionEvent参数来监听操作手势。
1.mGestureDetector.onTouchEvent(event)
分享到:
评论

相关推荐

    GestureDetector类及其用法.doc

    GestureDetector类及其用法.doc

    android GestureDetector类及其用法

    Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要...

    GestureDetector类及其用法.pdf

    下面我们将深入探讨`GestureDetector`的用法和相关接口。 `GestureDetector`主要通过以下三个组件工作: 1. **`OnGestureListener`接口**:这是`GestureDetector`的主要监听器接口,提供了处理基本手势的回调方法...

    GestureDetector和SimpleOnGestureListener的使用教程

    在使用GestureDetector时,需要继承SimpleOnGestureListener类,并重写需要的方法。例如,可以重写onSingleTapUp方法,以便处理单击事件。又如,可以重写onLongPress方法,以便处理长按事件。 GestureDetector的...

    利用GestureDetector实现页面滑动Demo

    `GestureDetector`是Android SDK提供的一种用于检测常见触摸手势的工具类,比如单击、长按、滑动等。本教程将详细讲解如何利用`GestureDetector`来实现一个页面滑动的Demo。 首先,我们需要了解`GestureDetector`的...

    自定义GestureDetector实现多点触控

    在Activity或Fragment中,实例化自定义的GestureDetector,并传入一个实现了OnCustomGestureListener接口的类,这样就可以在回调方法中处理多点触控事件了。 ```java CustomGestureDetector gestureDetector = new ...

    对应源码---完整版

    这篇文档将详细解析`GestureDetector`的使用方法,并结合提供的源码进行深入探讨。 ### 一、GestureDetector简介 `GestureDetector`是Android框架中的一个工具类,主要用于识别和处理常见的触摸屏手势。它可以监听...

    用ViewFlipper+GestureDetector实现的滑屏demo

    `GestureDetector`是Android的触摸事件处理工具类,它能帮助开发者识别和处理各种触摸手势,如滑动(Swipe)、点击(Tap)等。在滑屏应用中,我们主要关注的是滑动手势,即左右滑动来切换`ViewFlipper`中的视图。 *...

    gesturedetector demo

    `GestureDetector`还可以与`ScaleGestureDetector`、`RotateGestureDetector`等其他手势检测类一起使用,构建出丰富的多指手势,例如 pinch-to-zoom(捏合缩放)和 rotate-to-rotate(旋转)等。 总的来说,`...

    ViewFlipper+GestureDetector多页面切换

    GestureDetector提供了onDown(), onFling(), onScroll(), onSingleTapUp()等方法,用于处理不同类型的触摸事件。 **多页面切换实现步骤** 1. **布局设计**:首先,在XML布局文件中添加ViewFlipper,并在其内部添加...

    利用GestureDetector关闭activity

    首先,我们需要了解`GestureDetector`的基本使用步骤: 1. 创建`GestureDetector`实例:创建一个`GestureDetector`对象,通常需要传递一个实现了`GestureDetector.OnGestureListener`接口的匿名内部类或自定义类。...

    GestureDetector

    它是Android SDK中的`android.view.GestureDetector`类,它继承自`GestureDetector.SimpleOnGestureListener`,后者是一个抽象类,定义了一系列与手势相关的回调方法。通过重写这些方法,我们可以定制化手势的响应...

    【Android】滑动屏幕效果GestureDetector、OnGestureListener、ViewFlipper

    `GestureDetector` 提供了简单的方法来识别和处理基本的手势,如轻触(tap)、长按(long press)、滑动(swipe)等。开发者可以实现 `OnGestureListener` 接口,通过重写其中的方法来响应这些手势事件。`...

    Android手势识别器GestureDetector使用详解

    GestureDetector的使用方法可以分为两步:首先,需要创建一个GestureDetector对象,传入一个GestureDetector.onGestureListener对象;其次,在GestureDetector.onGestureListener对象中实现各种手势的回调函数。 ...

    GestureDetector的实现

    在`GestureDetector`的使用中,我们需要重写这些方法,根据业务需求添加自定义逻辑。例如,我们可以这样创建一个监听器: ```java public class MyGestureListener extends GestureDetector....

    Android源码-使用ViewFlipper+GestureDetector实现划动翻页

    `GestureDetector`是Android中处理手势识别的工具类,它能帮助我们识别出常见的触摸屏幕手势,如单击、双击、长按、滑动等。`GestureDetector`的核心在于它的`SimpleOnGestureListener`接口,开发者需要实现这个接口...

    android GestureDetector依赖onTouchEvent判断左右滑动

    在Android开发中,手势识别是用户交互的重要组成部分,`GestureDetector`类是Android SDK提供的一种用于处理常见手势的工具类。本篇文章将深入探讨如何利用`GestureDetector`来判断左右滑动,以及其背后的源码解析。...

    2011.10.11——— android GestureDetector 测试OnGestureListener

    这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...

    《用户手势检测-GestureDetector使用详解》对应源码

    GestureDetector类是Android SDK提供的一种高效、灵活的方式来识别和处理用户在屏幕上执行的各种触摸手势。本篇文章将深入探讨GestureDetector的使用,以及如何结合源码来理解其工作原理。 GestureDetector的核心...

Global site tag (gtag.js) - Google Analytics