Come faccio a sapere se un MotionEvent è relativo o assoluto?

Sto implementando OnTouchListener e ricevo oggetti MotionEvent. Alcuni events ACTION_MOVE riportno le coordinate X / Y assolute, mentre alcune riportno le relative coordinate.

Come posso chiedere a un MotionEvent quale tipo di coordinate attualmente rappresenta?

  • Come salvare la posizione di scorrimento di RecyclerView utilizzando RecyclerView.State?
  • Errore durante il passaggio di un object da un'attività all'altra (utilizzando il pacchetto)
  • Imansible submit il parametro al parametro PHP POST android
  • Chiamata startActivity () dall'esterno di un context Attività
  • Google Place API per i posti di parcheggio
  • Come implementare un ascoltatore
  • android custom EditText UI
  • Qual è la migliore pratica per implementare una schermata di login (auth)?
  • Simbolo XML di XML di Android
  • Come rilevare quando il button viene premuto e rilasciato su android
  • Modifica dello stile del button nell'intera applicazione
  • Accesso di Gmail API tramite Android
  • 3 Solutions collect form web for “Come faccio a sapere se un MotionEvent è relativo o assoluto?”

    Potrebbe essere utile per le coordinate assolute (assoluta, per quanto riguarda lo schermo del dispositivo):

    MotionEvent.getRawX ()

    MotionEvent.getRawY ()

    Gli altri methods, getX() e getY() , dovrebbero restituire le coordinate relative alla visualizzazione che li hanno inviati.

    Questa è una limitazione sulla piattaforma Android.

    MotionEvent a volte restituirà le coordinate X e Y assolute rispetto alla vista e talvolta le coordinate relative all'evento di movimento precedente.

    Un evento inviato come ACTION_DOWN sarà sempre assoluto, tutti gli altri events variano. Non c'è modo di chiedere al MotionEvent il tipo corrente di coordinate.

    Ciò significa che in pratica i getX() e getY() sono inutili per molti casi d'uso e dovresti basare la logica dell'applicazione su getRawX() e getRawY() che è garantita per restituire coordinate assolute relative alla schermata del dispositivo.

    Quando ho utilizzato MapView, sono stato in grado di get le relative coordinate X e Y sottraendo View.getLeft () e View.getTop () della vista di contenuto della window (Window.ID_ANDROID_CONTENT) da MotionEvent.getRawX () e MotionEvent. getRawY (), rispettivamente.

    La soluzione è discussa qui:

    http://andmobidev.blogspot.com/2010/01/getting-relative-coordinates-from.html

    Questo dovrebbe funzionare per determinare le relative coordinate X e Y nella vista di layout principale.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.