getActionMasked()指針
多點觸控時使用getActionMasked()取代getAction()來獲取事件類型對象
Pointer事件
一個pointer就表明一個觸摸點。一個MotionEvent對象中可能存儲多個pointer的相關信息,每一個pointer都有本身的id和index,id在整個事件流中是不會發生變化的,可是index會發生變化get
每根手指從按下、移動到離開屏幕,每一個手指都會擁有一個固定PointerId的值io
每根手指從按下、移動到離開屏幕,每根手指在每個事件的Index多是不固定的table
事件 | PointerId | PointerIndex |
---|---|---|
依次按下三根手指 | 三根手指的id依次爲0、一、2 | 三根手指的index依次爲0、一、2 |
擡起第二根手指 | 第一根手指的id爲0,第三根手指的id爲2 | 第一根手指的index爲0,第三根手指的index變爲1 |
擡起第一根手指 | 第三根手指的id爲2 | 第三根手指的index變爲0 |
相關事件方法
事件 | 簡介 |
---|---|
ACTION_DOWN | 第一個手指初次接觸到屏幕時觸發 |
ACTION_MOVE | 手指在屏幕上滑動時觸發,會屢次觸發 |
ACTION_UP | 最後一個手指離開屏幕時觸發 |
ACTION_POINTER_DOWN | 有非主要的手指按下(即按下以前已經有手指在屏幕上) |
ACTION_POINTER_UP | 有非主要的手指擡起(即擡起以後仍然有手指在屏幕上) |
相關方法tab
方法 | 簡介 |
---|---|
getActionMasked() | 在多點觸控中取代getAction() |
getPointerCount() | 獲取在屏幕上手指的個數 |
getX(int pointerIndex) | 獲取某一個指針(手指)的X座標 |
getY(int pointerIndex) | 獲取某一個指針(手指)的Y座標 |
getActionIndex() | 獲取該事件對應的PointerIndex |
findPointerIndex(int pointerId) | 經過PointerId獲取到當前狀態下PointIndex |
getPointerId(int pointerIndex) | 獲取一個指針的PointerId,在手指按下和擡起之間ID始終不變 |