在和手機屏幕進行交互的過程中,我們存在多種多樣的手勢,想比如單擊,雙擊,滑動,兩指的縮放,那麽Android是怎麽對我們的手勢進行監聽的呢?通過本篇文章的學習,妳講對Android手勢處理有個大致的了解:
1.Android系統提供的手勢監聽器OnGestureListener
2.Android系統提供的手勢監聽器SimpleOnGestureListener
3.onTouchEvent自己去識別各種手勢
1.activity實現這個接口需要重寫壹下方法:
這些函數在什麽時候會觸發:
onDown(MotionEvent motionEvent) :用戶按下屏幕就會觸發
onShowPress(MotionEvent motionEvent) :如果是按下的時間超過瞬間,而且在按下的時候沒有松開或者是拖動的,那麽onShowPress就會執行,這個瞬間無法定義
onLongPress(MotionEvent e) :長按觸摸屏,超過壹定時長,就會觸發這個事件
onSingleTapUp(MotionEvent motionEvent) :從名子也可以看出,壹次單獨的輕擊擡起操作,也就是輕擊壹下屏幕,立刻擡起來,才會有這個觸發,當然,如果除了Down以外還有其它操作,那就不再算是Single操作了,所以也就不會觸發這個事件
onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) :滑屏,用戶按下觸摸屏、快速移動後松開,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE, 1個ACTION_UP觸發
onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) :在屏幕上拖動事件
最後兩個方法有點類似,四個參數的意義也壹樣:
motionEvent:第1個ACTION_DOWN MotionEvent
motionEvent1:最後壹個ACTION_MOVE MotionEvent
v:X軸上的移動速度,像素/秒
v1:Y軸上的移動速度,像素/秒
2.創建手勢類,並重寫onTouchEvent方法,把onTouchEvent托管給手勢類
滑動的時候會調用: onDown-----》onScroll----》onScroll----》onScroll----》………----->onFling
單擊:onDown---》onSingleTapUp
雙擊:onDown---》onSingleTapUp---》onDown---》onSingleTapUp
SimpleOnGestureListener手勢監聽器相比於OnGestureListener監聽器的優點在於不需要重寫所有方法,只需要關註自己想要點方法即可,而且它還包含了下面OnDoubleTapListener監聽器單雙擊的方法,因此壹般情況下用這個監聽器最好:
同時,有壹個OnDoubleTapListener是只需要關註單擊和雙擊事件的:
可以通過重寫onTouchEvent方法獲取event.getAction()得到手指的狀態,按下,移動,擡起,判斷是壹根手指的時候就是拖動狀態,可以用於模仿微信拖動圖片拖動到下方然後消失,判斷是兩根手指的時候就是縮放狀態,用於模仿微信雙手縮放圖片根據判斷兩根手指的距離是增加還是減少進行放大和縮小。
以上就是關於Android手勢處理的相關知識點,如有不足或者錯誤的地方請在下方指正。我們需要多看更需要多寫,只有不斷學習,不斷進步才能不被淘汰。