使用View的onTouchEvent()方法代替dispatchTouchEvent()方法,因为onTouchEvent()方法处理速度更快。
使用ViewGroup的onInterceptTouchEvent()方法,这个方法能够拦截子视图的触摸事件,所以可以根据具体需求选择是否进行拦截。
示例代码:
@Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if(event.getAction() == MotionEvent.ACTION_DOWN) { Log.d(TAG, "onTouchEvent: ACTION_DOWN"); } return super.onTouchEvent(event); }
@Override public boolean onInterceptTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if(event.getAction() == MotionEvent.ACTION_DOWN) { Log.d(TAG, "onInterceptTouchEvent: ACTION_DOWN"); } return super.onInterceptTouchEvent(event); }