android手势类事件响应
来源:互联网 发布:3a算法工程师怎么样 编辑:程序博客网 时间:2024/05/20 03:06
android的屏幕手势事件的响应大概经过如下几个步骤:
首先,android系统将事件传递给Activity.dispatchTouchEvent(MotionEvent e)方法,由该方法进行分发给各个根view,所谓的根view即布局管理器Layout,分发给布局管理器的Layout.dispatchTouchEvent(MotionEvent e)方法,
然后又该方法继续分发给各个子视图。接着传递到Layout方法中的onInterceptToucheEvent(MotionEvent e),该方法为事件拦截器,若返回的值为true,表示拦截该事件,Layout中的组件将接受不到任何事件,事件直接传递给 onTouchEvent(MotionEvent e)接口中处理,若返回false,表示不拦截,Layout中的组件将接受到事件。
注意,此时交给onTouchEvent处理,若返回值为false时,该方法只处理第一个事件,后续的事件将不再处理,例如:我在屏幕上点击一个,产生Action_Down,Action_up,Action_onSingleTapUp三个事件,则onTouchEvent只处理Action_Down事件,后面的两个忽略。若返回值为true时,所有事件都会处理。因为onTouchEvent方法处理事件比较简单,所以android增加了一个手势类GestureDetector,
该类的构造方法接收一个SimpleOnGestureListener的对象,该对象实现了GestureDetector.OnGestureListener接口和GestureDetector.OnDoubleListener接口,其实所谓的实现其实方法中什么都没有做,这个由程序员自己完成相应的操作。
程序员实现接口后,实例化一个SimpleOnGestureListener对象作为参数传递给GestureDetector,然后在onTouchEvent方法中调用GestureDetector.onTouchEvent()方法,就可以处理不同的事件了。
还应该注意的是:通过GestureDetector.onTouchEvent()方法的返回值,可以获得你的手势的具体形式,这是通过修改GestureDetector.OnGestureListener接口中的各种处理事件的方法实现的。例如:OnGestureListener.onDown(),OnGestureListener.onScroll().OnGestureListener.onSingleTapUp(),OnGestureListener.onFling()。
各自的返回值即作为GestureDetector.onTouchEvent()方法的返回值。
注意:onInterceptTouchEvent方法是自上而下拦截事件,true为拦截,false为不拦截
当注册了监听onTouch()后,不再调用自身的onTouchEvent()方法。
当没有注册监听onTouch(),调用自身的onTouchEvent方法,返回值为false则进一步往上面传递事件,返回值为true时,不将事件往上传递
所以,onInterceptTouchEvent是控制事件往下传递,onTouchEvent()是控制事件向上传递的。
- android手势类事件响应
- 手势响应事件优先级
- UIimageview添加手势,无法响应手势事件
- 关于手势和响应事件
- 常见手势的响应事件
- Android 手势&触摸事件
- Android 手势&触摸事件
- Android 手势&触摸事件
- Android手势滑动事件
- Android 手势&触摸事件
- Android 手势&触摸事件
- Android 手势&触摸事件
- iOS 事件和响应者链,手势
- iOS 手势影响touch响应事件
- Ui:响应者链,手势,摇动事件
- Android 手势&触摸事件。手势各种状态
- 定义响应的手势类:长按手势,缩放手势
- [Android]事件响应
- jQuery选择器大全
- android AlarmManager
- Error The operation couldn’t be completed. (Cocoa error 516.)
- 十三周——Fibnacci 序列(迭代版)
- asp.net css 样式选择器,优先级
- android手势类事件响应
- Readline的理解
- MyEclipse8.6注册码源码
- 2-1.SQLite数据库
- 十三周——Fibnacci(迭代版)(任意位置)
- c++学习之--排序5-堆排序
- mini-xml换行
- C#
- android--基于wifi的手机遥控器--笔记1