一、Android touch事件的相关概念
用户的Touch事件被包装成MotionEvent
用户当前的touch事件主要类型有:
ACTION_DOWN: 表示用户开始触摸.
ACTION_MOVE: 表示用户在移动(手指或者其他)
ACTION_UP:表示用户抬起了手指
ACTION_CANCEL:表示手势被取消了,一些关于这个事件类型的讨论见:http://stackoverflow.com/questions/11960861/what-causes-a-motionevent-action-cancel-in-android
ACTION_OUTSIDE: 表示用户触碰超出了正常的UI边界.
ACTION_POINTER_DOWN:有一个非主要的手指按下了.
ACTION_POINTER_UP:一个非主要的手指抬起来了
touch事件的元数据包括:
touch的位置
手指的个数
touch事件的时间
一个touch手势被定义为以ACTION_DOWN开始和以 ACTION_UP结束。
二、Touch事件的处理流程
当用户触摸屏幕时,触发Activity调用dispatchTouchEvent
事件对象会按自顶向下的顺序在View Tree中传递
父View(ViewGroups)会调用dispatchTouchEvent将Event传递给子View
Event在任何时候都可能被拦截