用户和应用程序的交互多数都是通过触摸事件完成,所以有必要对事件处理的内部逻辑有了解,只有这样,才能编写事件时应用自如。下面开始吧
声明:
1.文中的WMS的全称是:WIndowManagerServier
2.文中所说的具体view,如果没有特除说明,全部代表如TextView,BUtton等view,即非ViewGroup类
android对触摸事件的处理逻辑简单概述为:从上到下传递事件,然后从下到上处理时间逻辑,其实我们也可以理解,在你触摸屏幕的时候,首先第一层那道事件,然后一层一层传下去,当传到具体view,如TextView,BUtton等时,结束传递,然后开始处理。一层一层往上传,但是在传的过程中,会根据onTouchEvent及
onInterceptTouchEvent(MotionEvent ev)的返回值,做不同操作吧了。下面会详细分析返回不同值的处理逻辑
触摸事件肯定有下面一系列动作 :
ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP,肯定有一个down和up事件,按实际情况来讲,也肯定存在move动作,因为人的手指在点的过程中,肯定会存在一定情况的移动,只是感觉不到吧了,但是程序可以知道,只是程序理解了你的这个移动,不处理。
首先说一下事件的大概流程:事件接收层(底层:硬件和软件,一般不需要了解)----