MotionEventCompat.getActionMasked(ev)獲取MotionEvent對(duì)應(yīng)的actionActivity.dispatchTouchEvent()
Activity.onTouchEvent()將被調(diào)用,而且這個(gè)函數(shù)是最后一個(gè)被調(diào)用的函數(shù)ViewGroup.dispatchTouchEvent()
onInterceptTouchEvent()函數(shù),判斷是否需要攔截
child.dispatchTouchEvent()OnTouchListener.onTouch()ViewGroup.onTouchEvent()View.dispatchTouchEvent()
View.OnTouchListener.onTouch()View.onTouchEvent(),即自己處理點(diǎn)擊事件dispatchTouchEvent(),該View會(huì)判斷是否對(duì)接下來(lái)的手勢(shì)感興趣,后續(xù)的點(diǎn)擊事件將直接傳遞到感興趣的ViewdispatchTouchEvent()函數(shù)中最先被調(diào)用的,如果onInterceptTouchEvent()返回true,它的孩子將不會(huì)收到該手勢(shì)的后續(xù)事件onTouchEvent()函數(shù)OnTouchListeneronTouchEvent())
getScaledTouchSlop():判斷一個(gè)移動(dòng)距離是否為draggetScaledMinimumFlingVelocity():判斷一個(gè)拖拽速度是否為flinggetLongPressTimeout():判斷一個(gè)touch時(shí)間段是否為long pressdispatchTouchEvent(),不要直接調(diào)用target的onTouchEvent()onInterceptTouchEvent()onInterceptTouchEvent()返回true,之后的點(diǎn)擊事件將不再經(jīng)過(guò)onInterceptTouchEvent()函數(shù)getScaledTouchSlop())MotionEvent.getPointerCount():獲取當(dāng)前屏幕上的觸點(diǎn)數(shù)量MotionEvent.getActionMasked(),MotionEvent.getActionIndex()getX(), getY(), getEventTime()getHistorySize()獲取打包的數(shù)量getHistorical*(pos)獲取第一個(gè)觸點(diǎn)的第pos個(gè)歷史事件的信息getHistorical*(index, pos)獲取第index個(gè)觸點(diǎn)的第pos個(gè)歷史事件的信息OnClickListenerOnLongClickListenerOnTouchListener
OnScrollListener / View.onScrollChanged()GestureDetector
ScaleGestureDetector
OnTouchListener或者onTouchEvent()進(jìn)行處理Touch Delegate
ViewGroup parent;
View child;
Rect touchArea;
parent.setTouchDelegate(new TouchDelegate(touchArea, child));
快速處理view拖拽的輔助類(lèi)。參考blog。
mDragHelper = ViewDragHelper.create(this, 1.0f, new DragHelperCallback());
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (mDragHelper.shouldInterceptTouchEvent(event)) {
return true;
}
return super.onInterceptTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mDragHelper.processTouchEvent(event);
return true;
}
ViewDragHelper.Callback的實(shí)現(xiàn)類(lèi)DragHelperCallback中,重載感興趣的函數(shù),實(shí)現(xiàn)自己的邏輯