0

我正在构建一个Android应用程序,用户必须在屏幕上触摸一个圆圈,我需要记录用户的触摸距离圆圈中心有多远。

问题是,我想记录物理距离,而不是像素距离,因为我要在许多设备上运行这个应用程序,我希望所有结果都是统一的。例如,如果用户与圆心的触摸距离为 15 像素,则在一台设备上这可能是 0.5 厘米的物理距离,而在另一台设备上可能是 1 厘米(只是这些数字,但你明白了)。所以我只能依靠物理测量,而不是像素。

那么我应该如何记录触摸距离呢?该View.onTouchEvent方法以像素为单位为您提供触摸事件的 x 和 y(我假设),所以我是否只需获取从圆心到触摸的距离(以像素为单位),然后将其转换为dp(并存储所有结果以 dp 为单位)?或者我应该将像素距离转换为pt,这在任何设备上都应该是相同的物理尺寸?如果是这样,如何从 px 转换为 pt (我似乎无法在任何地方找到答案)?

4

1 回答 1

0

您可以使用 DisplayMetrics 获取以像素为单位的屏幕尺寸和屏幕的 DPI,然后将宽度和高度除以 dpi 以获得宽和高的英寸数,并使用它将像素距离转换为真实世界的单位。 ..

如果这是有道理的。

链接到 DisplayMetrics:http: //developer.android.com/reference/android/util/DisplayMetrics.html

于 2012-11-20T01:55:09.433 回答