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
Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要...
下面我们将深入探讨`GestureDetector`的用法和相关接口。 `GestureDetector`主要通过以下三个组件工作: 1. **`OnGestureListener`接口**:这是`GestureDetector`的主要监听器接口,提供了处理基本手势的回调方法...
在使用GestureDetector时,需要继承SimpleOnGestureListener类,并重写需要的方法。例如,可以重写onSingleTapUp方法,以便处理单击事件。又如,可以重写onLongPress方法,以便处理长按事件。 GestureDetector的...
`GestureDetector`是Android SDK提供的一种用于检测常见触摸手势的工具类,比如单击、长按、滑动等。本教程将详细讲解如何利用`GestureDetector`来实现一个页面滑动的Demo。 首先,我们需要了解`GestureDetector`的...
在Activity或Fragment中,实例化自定义的GestureDetector,并传入一个实现了OnCustomGestureListener接口的类,这样就可以在回调方法中处理多点触控事件了。 ```java CustomGestureDetector gestureDetector = new ...
这篇文档将详细解析`GestureDetector`的使用方法,并结合提供的源码进行深入探讨。 ### 一、GestureDetector简介 `GestureDetector`是Android框架中的一个工具类,主要用于识别和处理常见的触摸屏手势。它可以监听...
`GestureDetector`是Android的触摸事件处理工具类,它能帮助开发者识别和处理各种触摸手势,如滑动(Swipe)、点击(Tap)等。在滑屏应用中,我们主要关注的是滑动手势,即左右滑动来切换`ViewFlipper`中的视图。 *...
`GestureDetector`还可以与`ScaleGestureDetector`、`RotateGestureDetector`等其他手势检测类一起使用,构建出丰富的多指手势,例如 pinch-to-zoom(捏合缩放)和 rotate-to-rotate(旋转)等。 总的来说,`...
GestureDetector提供了onDown(), onFling(), onScroll(), onSingleTapUp()等方法,用于处理不同类型的触摸事件。 **多页面切换实现步骤** 1. **布局设计**:首先,在XML布局文件中添加ViewFlipper,并在其内部添加...
首先,我们需要了解`GestureDetector`的基本使用步骤: 1. 创建`GestureDetector`实例:创建一个`GestureDetector`对象,通常需要传递一个实现了`GestureDetector.OnGestureListener`接口的匿名内部类或自定义类。...
它是Android SDK中的`android.view.GestureDetector`类,它继承自`GestureDetector.SimpleOnGestureListener`,后者是一个抽象类,定义了一系列与手势相关的回调方法。通过重写这些方法,我们可以定制化手势的响应...
`GestureDetector` 提供了简单的方法来识别和处理基本的手势,如轻触(tap)、长按(long press)、滑动(swipe)等。开发者可以实现 `OnGestureListener` 接口,通过重写其中的方法来响应这些手势事件。`...
GestureDetector的使用方法可以分为两步:首先,需要创建一个GestureDetector对象,传入一个GestureDetector.onGestureListener对象;其次,在GestureDetector.onGestureListener对象中实现各种手势的回调函数。 ...
在`GestureDetector`的使用中,我们需要重写这些方法,根据业务需求添加自定义逻辑。例如,我们可以这样创建一个监听器: ```java public class MyGestureListener extends GestureDetector....
`GestureDetector`是Android中处理手势识别的工具类,它能帮助我们识别出常见的触摸屏幕手势,如单击、双击、长按、滑动等。`GestureDetector`的核心在于它的`SimpleOnGestureListener`接口,开发者需要实现这个接口...
在Android开发中,手势识别是用户交互的重要组成部分,`GestureDetector`类是Android SDK提供的一种用于处理常见手势的工具类。本篇文章将深入探讨如何利用`GestureDetector`来判断左右滑动,以及其背后的源码解析。...
这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...
GestureDetector类是Android SDK提供的一种高效、灵活的方式来识别和处理用户在屏幕上执行的各种触摸手势。本篇文章将深入探讨GestureDetector的使用,以及如何结合源码来理解其工作原理。 GestureDetector的核心...