2012-01-05 37 views
5

我瞭解身份證和索引之間的區別,看起來ID在整個事件中是一致的,而且索引可能會有所不同。Android多點觸控 - 確定哪個手指擡起?

但是,我一直在改變ID的,並期待在這方面的一些理解。我已閱讀所有官方的Android文檔和衆多的博客,但似乎沒有一個簡潔的答案。

如果我把三個手指放在屏幕上,將會有ID的0,1和2.只要這些手指在屏幕上,這三個ID就會保持不變。正確?

一旦手指擡起,說第二根手指,跟蹤點保持不變。在x0,y0和x1,y1處仍然有一點,但ID現在是0和1.即使ID號碼爲1的點已被解除。

有沒有辦法看到手指2舉起,並使用ID 0和ID 2繼續跟蹤點?

我的理解是,這需要手動完成,並且ID值將保持相同的順序,其中放置的第二根手指始終具有比第一根更高的ID,但是它們可能不會保持相同的值當手指被移除時。

回答

0

該文檔顯示「單個指針在運動事件中出現的順序未定義。」。所以如果你用你的第一,第二和第三根手指觸摸,它們實際上可以按0:[first] 1:[third] 2; [second]的順序出現。

然後你可以擡起你的第二根手指,下一個動作事件可以是0:[第三] 1:[第一]。至少這是我通過閱讀文檔的理解,但我可能是錯的。

0

正如Theblacknight所說,這個問題的最大問題是行爲未定義。在目前爲止我測試過的每款Android 3.0+設備上,它的工作原理與您所期望的相同,ID和索引不會更改,一切正常。

但在Android的< 3.0,它顯然取決於電話。我的Droid2的行爲就像您的問題,但我朋友的G2正常工作。

我一直在努力找出處理它的最佳方法,但目前還沒有一個很好的解決方案。如果它是一致的並且只交換一次點ID,我可以接受它,但是如果你保留第二點並點擊第一個點,那麼這兩個點每次來回交換ID和索引。這非常令人沮喪。