1

目前我正在尝试开发一个应用程序,屏幕的一半(上半部分)是图片,另一半(下半部分)是网格视图。当我现在单击网格视图的其中一个图块时,我尝试使用 event.getY() 获取此单击的相对 y 坐标。在 Android 2.3.3 上,我得到 88 - 对我来说是正确的,稍后我必须使用这个值进行一些计算。但在 Android 4.0 上,它给了我一个大约 576 的值,在我看来,它好像是那个触摸事件的绝对坐标......

谁能解释这两个版本之间的区别?在 Android 4.0 中是否也有获取相对值的解决方案?

4

1 回答 1

0

你如何测试这个?我的 4.2 总是给我关于视图的坐标...

我认为这可能是由于两种设备具有不同的分辨率。由于 2.3.3 可能较旧,它很可能具有较低分辨率的屏幕。尝试在两个相同的虚拟设备上进行测试(唯一的区别是 android 的版本)。您还可以尝试在两个分辨率截然不同的 2.3.3 设备上进行测试。

作为实践,我总是在使用坐标之前尝试标准化坐标(即event.getY()/view.getHeight())。这样您就不必担心分辨率。

编辑:

如果您绝对无法获得相对坐标(我不知道为什么会这样,但无论如何......),您可以玩游戏并始终获取原始坐标并自己进行相对计算。即使用getRawX()/ ,并减去您从和/或getRawY()获取的视图左上角的坐标。效率不高,但有用的解决方法。View.getLocationOnScreen()getLocationInWindow()

于 2013-05-20T12:24:46.407 回答