В документации об этом говорится:
A gesture starts with a motion event with ACTION_DOWN that provides the location of the first pointer down. As each additional pointer that goes down or up, the framework will generate a motion event with ACTION_POINTER_DOWN or ACTION_POINTER_UP accordingly.
Итак, я сделал переопределение функции onTouchEvent в своей деятельности :
@Override
public boolean onTouchEvent(MotionEvent MEvent)
{
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER1 " + MEvent.getActionIndex() );
}
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER2 " + MEvent.getActionIndex() );
}
}
. К сожалению, второй if никогда не вводится. Активность содержит 2 представления с 2 OnTouchListener , я знаю, что onTouchEvent вызывается только в том случае, если представление активности не потребляет событие, поэтому я попытался вернуть false в прослушивателе и таким образом, я могу распознать только касание первого пальца, но это позволяет слушателю не получать событие ACTION _UP и не позволяет мне распознавать касание вторым пальцем. Я также пытался вернуть true в прослушивателе, но после ручного вызова функции onTouchEvent, но это также позволило мне распознать только первое касание пальца.
Что не так в моем коде?