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):
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.