TouchEvent
TouchEvent 分三种事件:down、move、up。
其中move事件在一个操作中(这里说的一个操作就是用户与屏幕的交互,即由down到up的动作序列)可能会发生多次。
但是,我们认为一个动作序列会包含以上三种事件,因此,在事件处理中就是要处理好这个过程,而最重要的就是down事件,这是一个动作序列的起始,没有down谈不上后面的事件了。
所以,我们把消耗down事件的类当做是这个动作序列的最终载体。
如果Down事件不归你处理,那这个动作序列的move,up也不归你处理。
他们的触发顺序会是这样:
ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE…->ACTION_MOVE->ACTION_UP
Touch事件传递的相关方法
android系统中的几乎所有View的子类都具有下面三个和TouchEvent处理密切相关的方法:
//这个方法用来分发TouchEvent
public boolean dispatchTouchEvent(MotionEvent ev)
//这个方法用来拦截TouchEvent
//只有ViewGroup包含此方法,普通view不包含方法
public boolean onInterceptTouchEvent(MotionEvent ev)
//这个方法用来处理TouchEvent
public boolean onTouchEvent(MotionEvent ev)