一、 dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
dispatchTouchEvent是处理触摸事件分发,事件(多数情况)是从Activity的dispatchTouchEvent开始的。执行
super.dispatchTouchEvent(ev),事件向下分发。
onInterceptTouchEvent是ViewGroup提供的方法,默认返回false,返回true表示拦截。
onTouchEvent是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件。
触摸事件从Activiy开始 由onInterceptTouchEvent来判断是都在此终结触摸事件
二、MotionEvent ev
单手指操作:ACTION_DOWN---ACTION_MOVE----ACTION_UP---ACTION_OUTSIDE
ev.getAction() 获取触摸的类型
ev.getX() ev.getY() 触摸在屏幕上的位置 相对于自身的位置坐标 就是从action_down开始的操作
ev.getRawX() ev.getRawY() 触摸在屏幕上的位置 相对于屏幕的位置坐标
getX()是表示view相对于自身左上角的x坐标,而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕)