Android Multitouch - определить, какой палец поднял? - PullRequest
5 голосов
/ 06 января 2012

Я понимаю различия между идентификатором и индексом, когда кажется, что идентификатор одинаков для разных событий, и индекс может отличаться.

Однако я продолжаю получать изменения идентификаторов и ищу некоторое понимание в этомплощадь.Я прочитал всю официальную документацию по Android и многочисленные блоги, но, похоже, нет краткого ответа.

Если я положу три пальца на экран, будут идентификаторы 0, 1 и 2. Эти идентификаторы будут постоянными для этих трех точек, пока эти пальцы находятся на экране.Правильно?

Как только палец поднят, скажем, вторым пальцем, отслеживаемые точки остаются прежними.Есть еще точки в x0, y0 и x1, y1, но идентификаторы теперь равны 0 и 1. Даже если точка с идентификатором номер 1 была снята.

Есть ли способ увидеть, как палец № 2 поднят, и продолжать отслеживать точки, используя ID 0 и ID 2?

Насколько я понимаю, это необходимо сделать вручную, и что значения идентификаторов будут оставаться в том же порядке, где размещенный второй палец всегда имеет более высокий идентификатор, чем первый, но что они могут не оставатьсято же значение при удалении пальцев.

Ответы [ 2 ]

0 голосов
/ 03 марта 2012

Большая проблема с этим, как сказал Theblacknight, в том, что поведение не определено. На каждом устройстве Android 3.0+, которое я тестировал до сих пор, это работает точно так, как и следовало ожидать, идентификаторы и индексы не меняются, все работает отлично.

Но на Android <3.0, это зависит от телефона, по-видимому. Мой Droid2 ведет себя как ваша проблема, но G2 моего друга работает правильно. </p>

Я пытался найти лучший способ справиться с этим, но пока не нашел отличного решения. Если он был последовательным и просто поменял местами идентификаторы точек, я мог бы принять это, но если удерживать вторую точку и нажимать на первую и включать и выключать, две точки меняют идентификаторы и индексы взад и вперед каждый раз. Это очень расстраивает.

0 голосов
/ 15 февраля 2012

Документация гласит: «Порядок, в котором отдельные указатели появляются в событии движения, не определен». Поэтому, если вы дотронетесь до первого, второго и третьего пальцев, они могут фактически появиться в следующем порядке: 0: [первый] 1: [третий] 2; [второй].

Затем вы можете поднять второй палец, и следующее событие движения может быть 0: [третьим] 1: [первым]. По крайней мере, я так понимаю, читая документы, но я могу ошибаться.

...