android屏幕触摸事件机制(转)
来源:互联网 发布:sql developer 64下载 编辑:程序博客网 时间:2024/05/29 01:51
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。
一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP
当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一定。呵呵,为什么呢?看看下面我的调查结果你就明白了。
android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:
1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent
一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP
当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一定。呵呵,为什么呢?看看下面我的调查结果你就明白了。
android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:
1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent
当TouchEvent发生时,首先Activity将TouchEvent传递给最顶层的View, TouchEvent最先到达最顶层 view 的 dispatchTouchEvent ,然后由 dispatchTouchEvent 方法进行分发,如果dispatchTouchEvent返回true ,则交给这个view的onTouchEvent处理,如果dispatchTouchEvent返回 false ,则交给这个 view 的 interceptTouchEvent 方法来决定是否要拦截这个事件,如果 interceptTouchEvent 返回 true ,也就是拦截掉了,则交给它的 onTouchEvent 来处理,如果 interceptTouchEvent 返回 false ,那么就传递给子 view ,由子 view 的 dispatchTouchEvent 再来开始这个事件的分发。如果事件传递到某一层的子 view 的onTouchEvent 上了,这个方法返回了 false ,那么这个事件会从这个 view 往上传递,都是 onTouchEvent 来接收。而如果传递到最上面的 onTouchEvent 也返回 false 的话,这个事件就会“消失”,而且接收不到下一次事件。
- android屏幕触摸事件机制(转)
- android屏幕触摸事件机制
- android屏幕触摸事件机制
- android屏幕触摸事件机制
- android 屏幕触摸事件机制
- [Android实例] android屏幕触摸事件机制
- android 屏幕触摸事件及处理机制解读
- Android触摸事件机制
- Android触摸事件机制
- Android触摸事件机制
- Android事件触摸机制
- android中屏幕触摸事件
- Android 触摸事件传递机制
- Android触摸事件分发机制
- Android触摸事件分发机制
- Android 触摸事件传递机制
- Android触摸事件分发机制
- Android触摸事件分发机制
- SSH相关断网不能访问的解决方案
- Android性能优化之布局优化
- qq空间动态设置在哪?
- ActiveMQ使用STOMP协议的一个错误问题:Unexpected ACK received for message-id
- 计算机专业教学中的若干问题的思考——“计算机问题求解课”总结
- android屏幕触摸事件机制(转)
- android 实现欢迎界面
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- 判断三角形与点的关系的一种实现
- android中MotionEvent.ACTION_CANCEL事件如何被触发?
- 易信PK微信
- 《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
- 滚动到底部加载更多及下拉刷新listview的使用
- String 源码