Activity dispatchTouchEvent事件分发--测试(二)
来源:互联网 发布:exe软件修改器 编辑:程序博客网 时间:2024/04/29 05:13
这篇在测试(一)的基础上测试ButtonExt
http://blog.csdn.net/id19870510/article/details/46381051
主界面的整体Layout布局如下(TextViewExt改成ButtonExt 没有重新设置background属性)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <miss.goddess.touchdispatch.view.ButtonExt android:layout_width="100dip" android:layout_height="100dip" //android:background="#ccc" 注释掉 android:padding="50dip" android:text="@string/hello_world"/></LinearLayout>
--------------------------------------------------------------------------------
Activity覆盖了两个方法
@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {Log.d("touch:activity-dispatch", EventName.getName(event));return super.dispatchTouchEvent(event);}@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.d("touch:activity-onTouch", EventName.getName(event));return super.onTouchEvent(event);}ButtonExt主要覆盖了 dispatchTouchEvent onTouchEvent方法
public class ButtonExt extends Button { 。。。。。。。。。。。。@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {Log.d("touch:view:dispatch", EventName.getName(event));return super.dispatchTouchEvent(event);}@Overridepublic boolean onTouchEvent(MotionEvent event) {Log.d("touch:view:onTouch", EventName.getName(event));return super.onTouchEvent(event);}}开始测试
-----------------------------------------------------------------------------------------------------
分两种情况触摸屏幕
1、 滑动轨迹【A-O-B】
打印的日志如下
06-04 14:40:03.950: D/touch:activity-dispatch(14390): ACTION_DOWN---06-04 14:40:03.960: D/touch:activity-onTouch(14390): ACTION_DOWN---06-04 14:40:04.060: D/touch:activity-dispatch(14390): ACTION_MOVE06-04 14:40:04.060: D/touch:activity-onTouch(14390): ACTION_MOVE。。。。。。。。。。。。。。。。。。。。(省略)06-04 14:40:04.550: D/touch:activity-dispatch(14390): ACTION_MOVE06-04 14:40:04.550: D/touch:activity-onTouch(14390): ACTION_MOVE06-04 14:40:04.600: D/touch:activity-dispatch(14390): ACTION_UP06-04 14:40:04.600: D/touch:activity-onTouch(14390): ACTION_UP
可以发现。ButtonExt的dispatchTouchEvent onTouch事件根本不会执行
在滑动的过程中也能看到button按钮根本没有按下的selector效果
2、 滑动轨迹【O-B】
06-08 15:52:07.740: D/touch:activity-dispatch(19221): ACTION_DOWN---06-08 15:52:07.740: D/touch:view:dispatch(19221): ACTION_DOWN---06-08 15:52:07.740: D/touch:view:touch(19221): ACTION_DOWN---06-08 15:52:07.980: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:07.980: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:07.980: D/touch:view:touch(19221): ACTION_MOVE06-08 15:52:08.000: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:08.000: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:08.000: D/touch:view:touch(19221): ACTION_MOVE。。。。。。手指划出button区域以后,ButtonExt仍然能接收screen touch 事件06-08 15:52:12.590: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:12.590: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:12.590: D/touch:view:touch(19221): ACTION_MOVE。。。。。。。06-08 15:52:12.640: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:12.640: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:12.640: D/touch:view:touch(19221): ACTION_MOVE06-08 15:52:12.660: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:12.660: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:12.660: D/touch:view:touch(19221): ACTION_MOVE06-08 15:52:12.670: D/touch:activity-dispatch(19221): ACTION_MOVE06-08 15:52:12.670: D/touch:view:dispatch(19221): ACTION_MOVE06-08 15:52:12.670: D/touch:view:touch(19221): ACTION_MOVE06-08 15:52:12.670: D/touch:activity-dispatch(19221): ACTION_UP06-08 15:52:12.670: D/touch:view:dispatch(19221): ACTION_UP06-08 15:52:12.670: D/touch:view:touch(19221): ACTION_UP
ButtonExt可以在dispatchTouchEvent onTouchEvent中接收到Action_Down ACTION_MOVE ACTION_UP事件
activity的onTouchEvent事件收不到。。被中断了?
其中事件分发的顺序是
Activity dispatchTouchEvent -- > view dispatchTouchEvent -- > view onTouchEvent
0 0
- Activity dispatchTouchEvent事件分发--测试(二)
- Activity dispatchTouchEvent事件分发--测试(一)
- Activity dispatchTouchEvent事件分发--总结(一)
- Android touch 事件分发 (一)Activity dispatchTouchEvent
- Activity Touch事件分发 dispatchTouchEvent onTouchEvent
- Activity dispatchTouchEvent事件分发的源头
- Android 事件分发(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)
- Android dispatchTouchEvent View事件分发
- Android事件分发之dispatchTouchEvent()
- dispatchTouchEvent以及onTouchEvent事件分发
- android dispatchTouchEvent()事件分发机制
- android事件分发 入口(dispatchTouchEvent)
- Android 关于事件分发 dispatchTouchEvent
- 事件分发之ViewGroup.dispatchTouchEvent(Android5.0)
- Android的事件分发机制(一):dispatchTouchEvent
- Android事件分发01——从Activity的dispatchTouchEvent开始开车
- Android事件分发02——Activity的dispatchTouchEvent验证一把
- dispatchTouchEvent(),onInterceptTouchEvent()和onTouchEvent()的事件分发
- 彻底解决iOS项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的类似问题
- 帮助文档下载(采用大数据量断点续传,分段下载)
- 人脸表情识别
- I2S bclk分频系数计算
- Mysql导入,导出数据
- Activity dispatchTouchEvent事件分发--测试(二)
- 乐村淘颠覆农村电商概念
- GUI菜单练习
- pycharm开发python时出现控制台显示中文乱码
- cocos2d-js ttf字体总结(史上最详细教程)。
- 动态配置脚本实现之 链接库方法提取
- VS2013 以管理员方式启动
- hdu 5214 Movie(贪心)
- PHP多维数组排序