http://blog.csdn.net/iamfafa/article/details/6316062

Android里有两个类

  android.view.GestureDetector

  android.view.GestureDetector.SimpleOnGestureListener

  (另外android.widget.Gallery好像是更牛x的OnGestureListener )

  1)新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener

  可以实现以下event事件。

  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

  2)在view的新建一个GestureDetector的对象。

  构造函数里 gestureDetector = new GestureDetector(new HahaGestureDetectorListener());

  然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。

  @Override

  public boolean onTouchEvent(MotionEvent event) {

  gestureDetector.onTouchEvent(event);

  }

  但是,郁闷的是SimpleOnGestureListener没有提供onUp(), 还得在View的

  onTouchEvent的

  case MotionEvent.ACTION_UP:

  里来写对应的代码。

Android 屏幕滑动事件的更多相关文章

  1. android ViewPager滑动事件讲解

    首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方法:(onPageScrollStateChan ...

  2. Appium Android 屏幕滑动

  3. android开发学习之ViewPager滑动事件讲解

    android ViewPager滑动事件讲解 今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究: 首先ViewPager在处理滑动事件的时候要用到OnPa ...

  4. Android 解决Gallery下ScrollView滑动事件冲突

    在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义 ...

  5. Android——滑动事件冲突解决

    android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件. android系统中的每个View的子类都具有下面三个与TouchEvent处理密切相关的方法: (1) ...

  6. Android判断Touch为滑动事件还是操作控件

    Android判断Touch为滑动事件还是操作控件 因为在项目中要判断WebView是否处于滚动状态,但它不像ListView有onScrollStateChanged方法来监听,要实现就得手动监听它 ...

  7. Android中Touch事件分析--解决HorizontalScrollView滑动和按钮事件触发问题

    之前写过关于HorizontalScrollView滑动和按钮事件触发问题,但是不能所有的情况,最近几天一直在想这个问题,今天有一个比较好的解决思路,最终应用在项目里面效果也很好,首先说明一下功能: ...

  8. Android onTouch、OnLongClick、onClick和ScrollView滑动事件冲突

    为了实现近期录制的长按,松开手指,结束录制功能.在项目,难道你去走一走会头晕,书写demo为了下一个梳理. 顺便研究android事件调用机制. 先上效果界面: 布局: <RelativeLay ...

  9. Android 屏幕实现水龙头事件

    在android下,事件的发生是在监听器下进行,android系统能够响应按键事件和触摸屏事件.事件说明例如以下: onClick(View v)一个普通的点击button事件 boolean onK ...

随机推荐

  1. 逻辑运算符——逻辑与&&、逻辑或||

    一直以来,都是认为逻辑运算符返回的是布尔值,却突然发现:并不是这样. 对于||来说,如果条件判断结果为true就返回第一个操作数的值,如果为false就返回第二个操作数的值. &&则相 ...

  2. php---文件上传分析

    文件上传: 先抄一段:预定义变量$_FILES数组有5个内容:       $_FILES['userfile']['name']——客户端机器文件的原名称       $_FILES['userfi ...

  3. backbone 更新1.1.2

    backbone已经更新到1.1.2,在这里总结一下 我还一直用的1.0的版本,更新确实出现了一些问题 1.1.0  Backbone Views no longer automatically at ...

  4. SpringMVC自动扫描@Controller注解的bean

    若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...

  5. LeetCode Compare Version Numbers

    原题链接在这里:https://leetcode.com/problems/compare-version-numbers/ 用string.split()方法把原有string 从小数点拆成 str ...

  6. SqlServer基础:游标

    记录下今天用到的游标: DECLARE @TempID INTDECLARE @Number INTSET @Number=1DECLARE myCursor CURSOR FOR     SELEC ...

  7. thinkphp 最简单的引入百度编辑器的方法

    后台肯定是框架了...编辑器放在框架里面... 后台首页比如是这样的... <html> <frameset cols="10%,90%"> <fra ...

  8. 对memcpy函数的改进

    void *mymemcpy(void *dst,const void *src,size_t num) { assert((dst!=NULL)&&(src!=NULL)); int ...

  9. 什么是BI及哪些行业需要用到BI?

    什么是BI?哪些行业需要用到BI?BI——就是分析利用企业已有的各种商用数据来了解企业的经营状况和外部环境,从而为企业的经营决策提供数据支撑.下面我们来详细分解下: 企业应用BI的目标即是期望通过对来 ...

  10. mysql -prompt选项

    使用-pormpt修改提示符.可以在登录时或者在登录后使用prompt选项来修改提示符 (1)使用mysql命令行参数修改提示符 # mysql -u root -p Enter password: ...