Dokumentacja powiedzieć o tym, że:Android - Jak obsługiwać dwa dotykową
Gest zaczyna się od zdarzenia ruchu z ACTION_DOWN który zapewnia lokalizację pierwszego wskaźnika w dół. Ponieważ każdy dodatkowy wskaźnik , który przechodzi w dół lub w górę, struktura wygeneruje zdarzenie ruchu z odpowiednio ACTION_POINTER_DOWN lub ACTION_POINTER_UP.
więc mam zrobić nadpisanie funkcji onTouchEvent w mojej działalności:
@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());
}
}
Niestety drugi, jeśli nie jest podana. Działanie zawiera 2 widok z 2 OnTouchListener, wiem, że onTouchEvent jest wywoływany tylko wtedy, gdy widok działania nie zużywają zdarzenia, więc próbowałem zwrócić wartość false w odbiorniku i w ten sposób mogę rozpoznać tylko dotknięcie pierwszego palca, ale to pozwala uniknąć słuchacza, aby odebrać wydarzenie ACTION_UP i nie pozwala mi rozpoznać drugiego dotknięcia palcem. Próbowałem również zwrócić true w słuchaczu, ale po ręcznym wywołaniu funkcji onTouchEvent, to pozwoli mi rozpoznać tylko pierwszy dotyk palca.
Co jest nie tak w moim kodzie?
Tak, to jest problem. Dodanie "i" z ACTION_MASK rozwiązało problem. Wkurza mnie to, że w oficjalnej dokumentacji nic o tym nie mów. – Bemipefe
Bernipefe, czuję się dla ciebie proszę pana. Każdy może popełnić błąd w dokumentacji. Ten jest prawdopodobnie częstym błędem, ponieważ czasami nie musisz maskować. Moja jedyna sugestia, aby następnym razem użyć debuggera, aby zobaczyć, jakie wartości przychodzą, i zobaczyć, czy któraś z wartości jest zgodna z oczekiwaniami. Powodzenia dla innego fana Androida! –
Mogę pobrać ACTION_POINTER_UP i ACTION_POINTER_DOWN, ale nie mogę znaleźć sposobu na pobranie ACTION_MOVE. Mogę go pobrać w trybie pojedynczego palca w odbiorniku widoku, ale kiedy kładę drugi palec na ekranie, jedyną rzeczą, którą mogę grupować z metody onTouchEvent jest działanie GÓRA i DÓŁ, a nie MOVE. Jak to naprawić? – Bemipefe