Sto cercando di implementare lo zoom in una app che sto creando e di avere problemi con l'evento onTouch. Sembra che il puntatore delle azioni verso il basso & non si attivi immediatamente, come se non si dovesse ottenere un puntatore verso l'alto o verso il basso fino a quando non si verifica un'azione. Quindi, se entrambe le dita colpiscono lo schermo quasi contemporaneamente, il secondo dito (dovrebbe essere il puntatore (1)) ottiene un'azione di movimento prima che il puntatore venga chiamato, facendo in modo che il codice pensi che sia un DRAG e non un pizzico di zoom. Qualcun altro ha visto questo? Comunque intorno ad esso? Grazie.L'evento onTouch a volte non viene attivato ACTION_POINTER_DOWN
risposta
Ho avuto lo stesso problema nel mio progetto. Se tocco lo schermo e le mie dita sono troppo vicine, il sistema non realizza un evento multitouch. Penso che sia perché quando le tue dita sono troppo vicine, il sistema la vede come un dito.
Forse è possibile controllare questa ipotesi utilizzando il metodo getSize() per stimare l'area dello schermo da premere quando si tocca lo schermo con un solo dito e quando si tocca lo schermo con due dita ravvicinate.
Si è rivelato un problema con la ROM personalizzata che avevo visualizzato sul mio Evo. Grazie ancora ad hara per il loro consiglio, che si è rivelato un altro bug che ho avuto.
affrontato lo stesso problema scoperto che ACTION_POINTER_2_DOWN era stato licenziato nella mia app quando ho toccato il secondo dito e dopo che ACTION_MOVE stato licenziato il metodo getAction() indica il numero evento che deve essere controllato contro questa lista
http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_MOVE – Omkar
assicurati di includere MotionEvent.ACTION_MASK nel tuo switch. Per esempio:
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
some code
break;
case MotionEvent.ACTION_POINTER_DOWN:
ETC
ho risolto lo stesso problema con questo:
switch(event.getActionMasked()) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break;
}
Ho notato che questo caso (MotionEvent.ACTION_POINTER_DOWN) di essere licenziato se il metodo onTouch (evento) è tornato come vero come indicato di seguito:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(motionEvent.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
//your code
break ;
}
return true;
}
Nota: MotionEvent.ACTION_DOWN ottenendo soltanto ascoltato se il metodo onTouch() ha r eturned un valore booleano come return super.onTouchEvent (evento); quindi assicurati di essere vero per evitare questa situazione.
- 1. Perché FileSystemWatcher viene attivato due volte
- 2. non viene attivato - backbone
- 3. commitEditingStyle non viene attivato
- 4. Perché il gestore di ng-clic viene attivato due volte?
- 5. Perché questo metodo dell'API Web viene attivato due volte?
- 6. Viste multiple Eventi OnTouch
- 7. Spring ApplicationListener viene attivato due volte su webapp
- 8. readable.on ('end', ...) non viene mai attivato
- 9. CustomValidator ServerValidate il metodo non viene attivato
- 10. L'evento SelectedIndexChanged di DropDownList non viene attivato
- 11. DevExpress XtraGrid RepositoryItemButtonEdit non viene attivato
- 12. UITapGestureRecognizer non viene attivato nella sottoclasse UIView
- 13. $ non viene attivato il cambiamento di matrice
- 14. Il Raccoglitore modello personalizzato non viene attivato
- 15. angolare 2 - ngOnDestroy non viene attivato
- 16. socket.io: l'evento di disconnessione non viene attivato
- 17. Evento evento piattaforma ionica attivato due volte
- 18. Perché Android onLongPress viene sempre attivato dopo onDoubleTap?
- 19. ComponentDidMount() non viene chiamato quando viene attivato il componente reattivo
- 20. Attivato nella baseclass non attivato?
- 21. L'evento di input OnChange non viene attivato su jquery
- 22. UITableView spinta segue attivato più volte
- 23. onTouchEvent() non sarà attivato se setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) viene richiamato
- 24. $ .event.trigger non viene attivato in oggetto non DOM
- 25. Perché a volte JavaScript non viene caricato in IE8
- 26. semplice esempio angular.js a volte non viene caricato
- 27. Un handler postDelayed non viene attivato quando la CPU dorme?
- 28. Android: OnTouch, MotionEvent.ACTION_MOVE non è riconosciuto?
- 29. Come bloccare fino a quando un evento viene attivato C#
- 30. JS angolare: perché il mio evento clic viene attivato due volte?
Grazie per il consiglio, che tornerà utile sono sicuro. Ma non sono sicuro che questo sia il mio problema in quanto si verifica non importa dove tocchi lo schermo. Usando il debugger posso vedere che gli eventi su e giù del puntatore sembrano essere sempre ritardati e si verificano dopo un evento move (e l'evento move ha sempre un solo puntatore in quell'istanza). Ho anche provato l'app "Dotty" e ho potuto vedere lo stesso comportamento al suo interno. Potrebbe essere un problema hardware? Ho un Evo w/custom ROM. Grazie. – JStew