Android touch事件分析
2016-04-19 23:04
337 查看
从ViewGroup 的 onDispachTouchEvent 开始
viewgroup 收到父层调用过来的 touch event
在 onDispathTouchEvent 中做处理分发
1. 先使用 ev.getAction() 得到对应的动作 action ,然后根据actionMasked = action & MotionEvent.ACTION_MASK; 得到动作标志
当 actionMasked 为 ACTION_DOWN按下的时候 (或者会根据是否多点触屏,这次的事件为 多点触屏的其他事件 mFirstTouchTarget == null 来判断),会调用 onInterceptTouchEvent(ev)去算是否 当前这个viewgroup 拦截掉这个事件,把结果暂时用 intercepted 保存起来
然后检查当前 actionMasked 是否为结束取消事件 ACTION_CANCEL,并用 canceled 保存起来
然后 如果没有取消而且没有拦截的时候,回去遍历 当前viewGroup的childView。然后通过调用 isTransformedTouchPointInView 检查当前的这个触摸事件的event 坐标是否 落在这个childview上,
如果遍历到坐标落在childview 上时,会去调用 dispatchTransformedTouchEvent 来处理 这个触摸事件
在dispatchTransformedTouchEvent 中会检查childview是否存在dispatchTouchEvent来分发这个事件给childview
在 dispatchTouchEvent 中会 根据 当前的这个View(现在还是在 Viewgroup中)是否配置有 OnTouchlistenner ,如果没有就会调用 onTouchEvent 方法
让后再每一层每一层的把结果 返回给父view
viewgroup 收到父层调用过来的 touch event
在 onDispathTouchEvent 中做处理分发
1. 先使用 ev.getAction() 得到对应的动作 action ,然后根据actionMasked = action & MotionEvent.ACTION_MASK; 得到动作标志
当 actionMasked 为 ACTION_DOWN按下的时候 (或者会根据是否多点触屏,这次的事件为 多点触屏的其他事件 mFirstTouchTarget == null 来判断),会调用 onInterceptTouchEvent(ev)去算是否 当前这个viewgroup 拦截掉这个事件,把结果暂时用 intercepted 保存起来
然后检查当前 actionMasked 是否为结束取消事件 ACTION_CANCEL,并用 canceled 保存起来
然后 如果没有取消而且没有拦截的时候,回去遍历 当前viewGroup的childView。然后通过调用 isTransformedTouchPointInView 检查当前的这个触摸事件的event 坐标是否 落在这个childview上,
如果遍历到坐标落在childview 上时,会去调用 dispatchTransformedTouchEvent 来处理 这个触摸事件
在dispatchTransformedTouchEvent 中会检查childview是否存在dispatchTouchEvent来分发这个事件给childview
在 dispatchTouchEvent 中会 根据 当前的这个View(现在还是在 Viewgroup中)是否配置有 OnTouchlistenner ,如果没有就会调用 onTouchEvent 方法
让后再每一层每一层的把结果 返回给父view
相关文章推荐
- Android使用ListView时item失效解决方案
- Android studio 如何导入并引用Library工程
- 关于AndroidMainfest中配置的知识
- 关于Android bound Service 攻击和防御
- Android清除本地数据缓存代码
- Android系统中自带的图标&一些预定义样式&参考颜色值
- Android Studio、 补充知识以及主要组件
- Android笔记--解决使用php文件插入数据到mysql数据库的表中中文变问号的问题
- Android概述
- 【Android】图片切割
- Android计算器界面 TableLayout
- Android几种常见的多渠道(批量)打包方式介绍
- Android短信页面
- android第一步---环境搭建
- Android 中 WebView 与 js 简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题
- Android--帧动画
- Android下的图片压缩及图片和视频的上传
- Android 自定义控件onTouch事件浅析和个人总结
- Android蓝牙开发SPP协议通信
- Zepto的SwipeUp 在 android 和微信 的解决方案