简介:所谓的多点触碰就是多个手指在屏幕上进行操作,Android系统本身可以处理多达256个手指的触摸。
MotionEvent event即一个触摸事件。对屏幕的几乎所有操作都会触发事件,如点击、放开、滑动等
//多点触碰需要,保证多个手指操作时的动作判断是正确的
switch(event.getAction() & MotionEvent.ACTION_MASK) 或者event.getActionMasked()
MotionEvent.ACTION_DOWN:在第一个点被按下时触发
MotionEvent.ACTION_UP:当屏幕上唯一的点被放开时触发
MotionEvent.ACTION_POINTER_DOWN:当屏幕上已经有一个点被按住,此时再按下其他点时触发。
MotionEvent.ACTION_POINTER_UP:当屏幕上有多个点被按住,松开其中一个点时触发(即非最后一个点被放开时)。
MotionEvent.ACTION_MOVE:当有点在屏幕上移动时触发。值得注意的是,由于它的灵敏度很高,而我们的手指又不可能完全静 止 (即使我们感觉不到移动,但其实我们的手指也在不停地抖动),所以实际的情况是,基本上只 要有点在屏幕上,此事件就会一直不停地被触发。
简单的流程大概是这样:
当我们一个手指触摸屏幕 ——> 触发ACTION_DOWN事件
接着有另一个手指也触摸屏幕 ——> 触发ACTION_POINTER_DOWN事件,如果还有其他手指触摸,继续触发
有一个手指离开屏幕 ——> 触发ACTION_POINTER_UP事件,继续有手指离开,继续触发
当最后一个手指离开屏幕 ——> 触发ACTION_UP事件
而且在整个过程中,ACTION_MOVE事件会一直不停地被触发