Это ограничение на платформе Android.
MotionEvent
иногда возвращает абсолютные координаты X и Y относительно вида, а иногда относительные координаты к предыдущему событию движения.
Событие, отправленное как ACTION_DOWN
, всегда будет абсолютным, все остальные события будут отличаться. Нет способа спросить у MotionEvent
текущий тип координат.
Это означает, что на практике getX()
и getY()
бесполезны для многих случаев использования, и вы должны основывать логику приложения на getRawX()
и getRawY()
, которые гарантированно возвращают абсолютные координаты относительно экрана устройства .