这两天学习了下Android触摸事件。
记录下:
首先对事件的理解如下。
一个事件由down move up 三个动作组成,其中move动作可以有多个或者0个,但down 和up动作有且只有一个。这个三个动作中down是最先响应的,它是先驱,由它来决定move和up动作响应路线。
以event对象为主线,对事件分发和响应整个流程理解如下:
(前提是在一个Activity,一个LinearLayout布局里包含了一个Button控件的实验中得出理解)
第一步:生成event对象。
触摸屏幕后系统自动将down等动作封装成一个event对象来进行分发传递,此对象包括此次动作的所用信息,如时间,位置坐标等。
第二步:分发event对象。
1、系统会调当前Acitivity的dispatchTouchEvent方法,开始进行事件分发。此方法直接调用super.dispatchTouchEvent(ev)由父Acitivity来分发;
2、由调试信息可知,调用布局文件里面的LinearLayout类的dispatchTouchEvent方法来继续分发此事件。此方法也是直接调用super.dispatchTouchEvent(ev)交