2016-08-15 8 views
0

Я пытаюсь разобраться с основами Android Java dev и столкнулся с проблемой обработки нескольких входов одновременно.Android multiTouchHandler PointerID, дублирующий первоначальный штрих?

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

enter image description here

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

Первое:

enter image description here

Второе:

enter image description here

MultiTouchHandler где pointerIDs назначены для новых событий и обнаруживается here (SO форматирование не работает по какой-то причине?)

Я не понимаю, как указатель id s назначены или я вызвал ошибку в приведенном выше примере, как?

ответ

0

Для будущих Googlers:

Замена (очевидно) теперь осуждается

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); 

-обладает исправили проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^