2016-08-15 36 views
0

我試圖讓我的頭腦圍繞Android Java開發的基礎知識,並遇到了同時處理多個輸入的問題。Android multiTouchHandler PointerID複製初始觸摸?

我有一個可重現的問題,其中,如果使用多個手指,第一個手指的觸摸信息被用作第二個觸摸。它導致嚴重的按鈕被卡住,因爲離開它們的ID與激活它們的ID不一樣。

enter image description here

我有觸摸事件日誌的兩個例子,第一個顯示觸摸像下面,他們都發起,並在同一時間結束,第二個顯示在開始第一早已之後的第二阻力開始。請注意,出於某種原因,兩個touch_down事件共享相同的信息。

第一:

enter image description here

二:

enter image description here

MultiTouchHandler其中pointerIDs被分配給新的事件,並發現here(SO格式化工作不因某種原因? )

我誤解了pointerID s被分配了還是讓我在上面引起了一些錯誤?

回答

0

對於未來的Google:

更換(顯然)現在已經過時

int action = event.getAction() & MotionEvent.ACTION_MASK; 
int pointerIndex = (event.getActionIndex() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; 

在onTouch覆蓋的頂部:

int action = MotionEventCompat.getActionMasked(event); 
int pointerIndex = MotionEventCompat.getActionIndex(event); 

都具有一個固定的問題。