一个activity中new一个GestureDetector之后,里面会实现一下的方法:
onSingleTapUp
onShowPress
onScroll
onLongPress
onFling
onDown
说一下这些方法都是由那些MotionEvent触发的
今天的项目用到了onSingleTapUp和onShowPress和onLongPress和onFling;
//用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
onSingleTapUp 这个事件执行的顺序是onDown-》onShowPress-》onSingleTapUp
// 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发
// 它与onDown()的区别,强调的是没有松开或者拖动的状态
onShowPress
而onDown也是由一个MotionEvent ACTION_DOWN触发的,但是他没有任何限制,也就是说当用户点击的时候,首先MotionEvent ACTION_DOWN,onDown就会执行,如果在按下的瞬间没有松开或者是拖动的时候onShowPress就会执行,如果是按下的时间超过瞬间(这块我也不太清楚瞬间的时间差是多少,一般情况下都会执行onShowPress),拖动了,就不执行onShowPress。
// 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发
onLongPress 这个事件执行的顺序是onDown-》onShowPress-》onLongPress
// 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发
onFling
另外需要说的一点就是:
如果你是在一个大的view上装载了一个一个的小view,如果你想让大的view有界面动态效果(比如左右向下滑动),那么你必须将这些小的view加入setOnTouchListener,然后你可以在OnTouchListener方法中加入如下方法将你的MotionEvent事件传到gestureDetector中。如下:
- switch (event.getAction()) {
- case MotionEvent.ACTION_MOVE: {
- gestureDetector.onTouchEvent(event);
- break;
- }
- case MotionEvent.ACTION_UP: {
- v.setPressed(false);
- Log.i("cat", "CCCCCCCCCCCCCCCC");
- gestureDetector.onTouchEvent(event);
-
- return true;
- }
- case MotionEvent.ACTION_DOWN: {
- v.setPressed(true);
- gestureDetector.onTouchEvent(event);
- break;
- }
- }
分享到:
相关推荐
这篇2011年的博客文章“2011.10.11——— android GestureDetector 测试OnGestureListener”很可能详细探讨了如何使用`GestureDetector`来监听和处理用户的手势。 `GestureDetector`的核心在于它的监听器`...
`OnGestureListener` 和 `OnDoubleTapListener` 是Android SDK中的两个关键接口,它们使得开发者能够轻松地集成手势识别功能到应用程序中。让我们详细探讨这两个接口及其在`GestureTest.java`文件中的应用。 ### ...
在本案例中,`ViewFlipper`被与`OnGestureListener`结合使用,通过监听用户的手势来触发视图的切换,从而提供更加直观和自然的用户体验。 首先,我们需要了解`OnGestureListener`。这是Android SDK中的一个接口,它...
`GestureDetector`、`OnGestureListener` 和 `ViewFlipper` 是Android SDK提供的重要组件,用于处理用户的手势输入和视图切换。接下来,我们将详细讨论这三个组件以及如何将它们结合使用来创建滑动屏幕的效果。 `...
android手势识别两个对勾手势 OnGestureListener手势识别 可用于加载手势库
SimpleOnGestureListener是一个抽象类,它实现了OnGestureListener和OnDoubleTapListener两个接口。这个类提供了多种手势处理方法,例如onSingleTapUp、onLongPress、onScroll等。这些方法可以被重写,以便处理不同...
为了使用OnGestureListener,你需要创建一个GestureDetector实例,并将实现OnGestureListener的类作为参数传递给构造函数。然后在OnTouchListener的onTouch()方法中调用GestureDetector的onTouchEvent()方法,这样...
开发者可以在此处进行一些初始化操作。 2. `onShowPress(MotionEvent e)`:当用户按下屏幕但尚未松开或拖动时(ACTION_DOWN事件后,ACTION_UP或ACTION_MOVE事件前)调用。这个方法可用来提供触觉反馈,让用户知道...
同时,为了提高用户体验,可以添加一些视觉反馈,如滑动动画或指示器。 总结,`GestureDetector`在Android开发中扮演着重要的角色,它帮助我们轻松地处理触摸事件并识别出各种手势。通过创建自定义的监听器,我们...
- **OnGestureListener接口**:GestureDetector需要一个实现了OnGestureListener接口的对象来处理各种手势回调,如onDown(), onFling(), onScroll()等。 2. **滑动手势(Fling)** - **onDown()**:手势的起点,...
GestureDetector 提供了基础的手势检测框架,OnGestureListener 则包含了一系列回调方法,如 onDown()、onFling()、onSingleTapUp() 等,用于处理不同种类的手势事件。 二、GestureDetector与OnGestureListener 1....
本文将探讨如何在Android中实现触摸屏手势识别,主要关注`GestureDetector.OnGestureListener`接口及其相关事件处理。 首先,Android事件处理机制的核心是监听器(Listener),这在触摸屏事件中也不例外。例如,...
本篇文章将详细讲解如何在Android中实现手势操作,特别是涉及`SimpleOnScaleGestureListener`、`OnTouchListener`以及`OnGestureListener`这三个关键组件。 一、`SimpleOnScaleGestureListener` `...
开发者需要创建一个实现了OnGestureListener的类,并重写其中的方法,如onDown(), onFling(), onScroll()等,来定义各自手势的处理逻辑。 在GestureTest项目中,我们可能会看到以下关键部分: 1. **布局文件** ...
在Android开发中,手势识别是一项重要的交互功能,它允许用户通过特定...总之,通过理解`GestureDetector`和`OnGestureListener`的工作原理,开发者可以有效地在Android应用中集成手势识别功能,提升用户体验和交互性。
不适用click而用touch 自定义监听: class myOnGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onDoubleTap(MotionEvent e) { //点赞 mLoadingListener....
然而,在Fragment中直接使用`GestureDetector`会面临一些挑战,因为通常情况下,触摸事件会先由Activity捕获,然后传递给Fragment。 要解决这个问题,我们需要在Activity中设置一个接口,以便将触摸事件从Activity...
本示例主要讲解如何在同一个Activity内实现屏幕的切换,主要涉及到`GestureDetector`、`OnGestureListener`以及`ViewFlipper`组件。 `ViewFlipper`是Android中的一个布局容器,它继承自`FrameLayout`。`ViewFlipper...