Android - Como lidar com dois dedos
A documentação diz isso sobre isso:
Um gesto começa com um evento de movimento com ACTION_DOWN que fornece a localização do primeiro ponteiro para baixo. Como cada ponteiro adicional que desce ou sobe, a estrutura gerará um evento de movimento com ACTION_POINTER_DOWN ou ACTION_POINTER_UP de acordo.
Então eu fiz a substituição da função onTouchEvent na minha atividade:
@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() );
}
}
Infelizmente o segundo se nunca é inserido. A atividade contém 2 visualizações com 2OnTouchListener, Eu sei dissoonTouchEvent é chamado somente se a visão da atividade não consumir o evento, então eu tentei retornar false no ouvinte e desse modo eu posso reconhecer apenas o primeiro toque do dedo, mas isso evita que o ouvinte receba o evento ACTION_UP e não o faça. permita-me reconhecer o segundo toque do dedo. Eu também tentei retornar true no listener, mas depois invoco manualmente a função onTouchEvent, mas isso me permite reconhecer apenas o primeiro toque do dedo também.
O que há de errado no meu código?