studio resueltos relativo programacion porcentual móviles error ejercicios desarrollo curso aplicaciones absoluto android touch

android - resueltos - ¿Cómo puedo saber si un MotionEvent es relativo o absoluto?



manual de programacion android pdf (3)

Al usar MapView, pude obtener las coordenadas X e Y relativas al restar View.getLeft () y View.getTop () de la vista de contenido de la Ventana (Window.ID_ANDROID_CONTENT) de MotionEvent.getRawX () y MotionEvent. getRawY (), respectivamente.

La solución se discute aquí:

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

Esto debería funcionar para determinar las coordenadas X e Y relativas en la vista de diseño principal.

Estoy implementando OnTouchListener y estoy recibiendo objetos MotionEvent. Algunos eventos ACTION_MOVE informan coordenadas X / Y absolutas, mientras que algunos informan coordenadas relativas.

¿Cómo puedo preguntarle a MotionEvent qué tipo de coordenadas representa actualmente?


Es posible que desee utilizar estos para las coordenadas absolutas (absoluto, con respecto a la pantalla del dispositivo):

MotionEvent.getRawX()

MotionEvent.getRawY()

Los otros métodos, getX() y getY() , deben devolverle las coordenadas relativas a la View que las envió.


Esta es una limitación en la plataforma de Android.

MotionEvent a veces devolverá las coordenadas absolutas X e Y con respecto a la vista, y en ocasiones las coordenadas relativas al evento de movimiento anterior.

Un evento enviado como ACTION_DOWN siempre será absoluto, todos los demás eventos variarán. No hay forma de solicitar al MotionEvent el tipo de coordenadas actual.

Esto significa que en la práctica getX() y getY() son inútiles para muchos casos de uso, y debe basar su lógica de aplicación en getRawX() y getRawY() que garantiza devolver coordenadas absolutas, relativas a la pantalla del dispositivo.