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

OnGestureListener的一些体会

 
阅读更多

一个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中。如下:

 

  1. switch (event.getAction()) {   
  2.                         case MotionEvent.ACTION_MOVE: {   
  3.                             gestureDetector.onTouchEvent(event);   
  4.                             break;   
  5.                         }// inner case MOVE   
  6.                         case MotionEvent.ACTION_UP: {   
  7.                             v.setPressed(false);   
  8.                             Log.i("cat""CCCCCCCCCCCCCCCC");   
  9.                             gestureDetector.onTouchEvent(event);   
  10.                             // TODO animation   
  11.                             return true;   
  12.                         }// inner case UP   
  13.                         case MotionEvent.ACTION_DOWN: {   
  14.                             v.setPressed(true);   
  15.                             gestureDetector.onTouchEvent(event);   
  16.                             break;   
  17.                         }// inner case UP   
  18.                     }// inner switch  
 

 

分享到:
评论

相关推荐

    2011.10.11——— android GestureDetector 测试OnGestureListener

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

    OnGestureListener+OnDoubleTapListener

    `OnGestureListener` 和 `OnDoubleTapListener` 是Android SDK中的两个关键接口,它们使得开发者能够轻松地集成手势识别功能到应用程序中。让我们详细探讨这两个接口及其在`GestureTest.java`文件中的应用。 ### ...

    ViewFlipper+OnGestureListener+动画.

    在本案例中,`ViewFlipper`被与`OnGestureListener`结合使用,通过监听用户的手势来触发视图的切换,从而提供更加直观和自然的用户体验。 首先,我们需要了解`OnGestureListener`。这是Android SDK中的一个接口,它...

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

    `GestureDetector`、`OnGestureListener` 和 `ViewFlipper` 是Android SDK提供的重要组件,用于处理用户的手势输入和视图切换。接下来,我们将详细讨论这三个组件以及如何将它们结合使用来创建滑动屏幕的效果。 `...

    gestures-android手势识别两个对勾手势 OnGestureListener手势识别

    android手势识别两个对勾手势 OnGestureListener手势识别 可用于加载手势库

    GestureDetector和SimpleOnGestureListener的使用教程

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

    详谈OnTouchListener与OnGestureListener的区别

    为了使用OnGestureListener,你需要创建一个GestureDetector实例,并将实现OnGestureListener的类作为参数传递给构造函数。然后在OnTouchListener的onTouch()方法中调用GestureDetector的onTouchEvent()方法,这样...

    A0506手势处理GestureListener1

    开发者可以在此处进行一些初始化操作。 2. `onShowPress(MotionEvent e)`:当用户按下屏幕但尚未松开或拖动时(ACTION_DOWN事件后,ACTION_UP或ACTION_MOVE事件前)调用。这个方法可用来提供触觉反馈,让用户知道...

    利用GestureDetector实现页面滑动Demo

    同时,为了提高用户体验,可以添加一些视觉反馈,如滑动动画或指示器。 总结,`GestureDetector`在Android开发中扮演着重要的角色,它帮助我们轻松地处理触摸事件并识别出各种手势。通过创建自定义的监听器,我们...

    gesture_java_break1u1_

    - **OnGestureListener接口**:GestureDetector需要一个实现了OnGestureListener接口的对象来处理各种手势回调,如onDown(), onFling(), onScroll()等。 2. **滑动手势(Fling)** - **onDown()**:手势的起点,...

    应用源码之GestureRecogniseSample.zip

    GestureDetector 提供了基础的手势检测框架,OnGestureListener 则包含了一系列回调方法,如 onDown()、onFling()、onSingleTapUp() 等,用于处理不同种类的手势事件。 二、GestureDetector与OnGestureListener 1....

    简述Android触摸屏手势识别

    本文将探讨如何在Android中实现触摸屏手势识别,主要关注`GestureDetector.OnGestureListener`接口及其相关事件处理。 首先,Android事件处理机制的核心是监听器(Listener),这在触摸屏事件中也不例外。例如,...

    androidGesture

    本篇文章将详细讲解如何在Android中实现手势操作,特别是涉及`SimpleOnScaleGestureListener`、`OnTouchListener`以及`OnGestureListener`这三个关键组件。 一、`SimpleOnScaleGestureListener` `...

    Android 触屏手势识别GestureTest-IT计算机-毕业设计.zip

    开发者需要创建一个实现了OnGestureListener的类,并重写其中的方法,如onDown(), onFling(), onScroll()等,来定义各自手势的处理逻辑。 在GestureTest项目中,我们可能会看到以下关键部分: 1. **布局文件** ...

    android手势识别

    在Android开发中,手势识别是一项重要的交互功能,它允许用户通过特定...总之,通过理解`GestureDetector`和`OnGestureListener`的工作原理,开发者可以有效地在Android应用中集成手势识别功能,提升用户体验和交互性。

    android 控件同时监听单击和双击实例

    不适用click而用touch 自定义监听: class myOnGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onDoubleTap(MotionEvent e) { //点赞 mLoadingListener....

    Fragment使用手势操作

    然而,在Fragment中直接使用`GestureDetector`会面临一些挑战,因为通常情况下,触摸事件会先由Activity捕获,然后传递给Fragment。 要解决这个问题,我们需要在Activity中设置一个接口,以便将触摸事件从Activity...

    android 屏幕切换

    本示例主要讲解如何在同一个Activity内实现屏幕的切换,主要涉及到`GestureDetector`、`OnGestureListener`以及`ViewFlipper`组件。 `ViewFlipper`是Android中的一个布局容器,它继承自`FrameLayout`。`ViewFlipper...

Global site tag (gtag.js) - Google Analytics