Motionevent.getX и getY - PullRequest
       26

Motionevent.getX и getY

9 голосов
/ 04 сентября 2010

Мне нужна помощь, чтобы понять следующее.

Скажем, у меня дисплей 854х480 пикселей. Почему методы MotionEvent.getX и getY возвращают значения с плавающей точкой? Насколько я могу судить, пиксели на дисплее являются дискретными целыми числами, на дисплее нет такой вещи, как половина пикселя.

1 Ответ

14 голосов
/ 04 сентября 2010

со страницы разработчика:

"Возвращает координату X этого события для данного индекса указателя (используйте getPointerId (int), чтобы найти идентификатор указателя для этого индекса). Целые числа - это пиксели; значение может иметь дробь для устройств ввода, которые подчинены точный пиксель. "

http://developer.android.com/reference/android/view/MotionEvent.html#getX()

Так что для некоторых устройств сенсорный экран может быть более точным, чем просто разрешение в пикселях. Я предположил бы, что это имело бы место в большинстве случаев для устройств низкой плотности, таких как Droid Eris.

Чтобы представить его проще, представьте, что сенсорный экран полностью независим от экрана; например, как у вас может быть планшет для рисования одного размера, который работает независимо от разрешения экрана. Скажем, если ваше разрешение 1600х1200, перемещение пера скажет, что 0,02 дюйма может быть эквивалентно 4 или 5 пикселям движения, тогда как на экране 800х600 это будет только 2 или 3 (полностью составленные числа, но точка верна ) * +1010 *

...