前言
随着科学技术的发展,智能手机早已成为我们当代人身边必不可少的“伙伴”之一,堪比对象女友。每天我们对着手机重复的做着点击
、滑动
操作,而手机则随着我们的操作给我们展示她的精彩。
…
废话到此结束。
看到这里,即使不是作为移动端码农的你也应该知道触摸事件对手机(经典键盘机除外)的重要性了。
什么是触摸事件
顾名思义,就是触摸手机屏幕后产生的事件。这时候请你拿出手机,点击屏幕中的某个按钮(不要松手),移动一段距离,松手。
这个过程一般会产生如下几个事件:
- 点击(Down)事件
- 移动(Move)事件
- 松手(Up)事件
Android为我们封装好了一个触摸事件类MotionEvent
,上述的三个过程分别对应着MotionEvent
中的MotionEvent.ACTION_DOWN
、MotionEvent.ACTION_MOVE
、MotionEvent.ACTION_UP
事件类型,我们可以以此来实现不同的逻辑,即事件的分发处理。所谓触摸事件的分发,实际上可以理解为MotionEvent
事件的分发过程,即当一个MotionEvent
产生了之后,系统需要把这个事件传递给一个具体的View,而这个传递的过程就是分发过程。
事件三剑客
一般事件的分发过程是由事件三剑客(方法)来共同完成的。
/**
* 剑客一:用于事件的分发
*/
public boolean dispathTouchEvent(MotionEvent ev)
/**
* 剑客二:在剑客一中被调用,用于事件的拦截
*/
public boolean onInterceptTouchEvent(MotionEvent ev)
/**
* 剑客三:在剑客一中被调用,处理点击事件,true:消耗了当前事件 false:当前view无
* 法再次接