3.事件处理之多点触摸与手势识别

简介:所谓的多点触碰就是多个手指在屏幕上进行操作,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事件会一直不停地被触发

你可能感兴趣的:(3.事件处理之多点触摸与手势识别)