10

我需要帮助理解以下内容。

假设我有一个 854x480 像素的显示器。为什么 MotionEvent.getX 和 getY 方法返回浮点数?据我所知,显示器上的像素是离散的整数,显示器上没有半个像素这样的东西。

4

1 回答 1

15

从开发者页面:

“返回给定指针索引的此事件的 X 坐标(使用 getPointerId(int) 查找此索引的指针标识符)。整数是像素;对于亚像素精度的输入设备,该值可能有一小部分。 "

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

因此,对于某些设备,触摸屏可能比像素分辨率更精确。我想这对于像 Droid Eris 这样的低密度设备来说大部分时间都是这种情况。

为了更容易想象,将触摸屏视为完全独立于屏幕;就像您如何拥有一个独立于屏幕分辨率的一种尺寸的绘图板。假设你的分辨率是 1600x1200,移动你的笔比如 0.02 英寸可能相当于移动 4 或 5 个像素,而在 800x600 的屏幕上它只有 2 或 3。(完全是数字,但这一点是有效的)

于 2010-09-03T22:47:33.523 回答