【发布时间】:2011-06-13 13:06:59
【问题描述】:
我是 Android 新手,并且有一个关于重新分级触摸输入的问题(使用 OnTouchUp/Down/Move)。 Android使用什么坐标系?我得到的值范围从 0,0(左上角)到 320,530(右下角)。我选择的模拟器的分辨率是 480x800...所以这没有任何意义...
你能给我一个提示吗? 谢谢!
【问题讨论】:
标签: android input touch coordinates
我是 Android 新手,并且有一个关于重新分级触摸输入的问题(使用 OnTouchUp/Down/Move)。 Android使用什么坐标系?我得到的值范围从 0,0(左上角)到 320,530(右下角)。我选择的模拟器的分辨率是 480x800...所以这没有任何意义...
你能给我一个提示吗? 谢谢!
【问题讨论】:
标签: android input touch coordinates
发生这种情况是因为您没有指定您的应用程序可以处理不同密度的屏幕。这就是为什么 Android 会自动缩放所有内容,但该应用程序在虚拟屏幕上运行,而不是在真实屏幕上运行。
要使事情看起来像原来的样子,您必须在 AndroidManifest.xml 中指定 android:anyDensity="true",或者将 minSdkVersion 或 targetSdkVersion 设置为“4”或更高。后者将自动使 Android 假定 android:anyDensity 设置为“true”。
您可以在文章Supporting Multiple Screens 中阅读有关屏幕相关问题的更多信息。
【讨论】:
引用链接页面:
与密度无关的像素 (dp)
您应该使用的虚拟像素单元 在定义 UI 布局时,要表达 布局尺寸或位置 密度无关的方式。
与密度无关的像素是 相当于一个物理像素 160 dpi 屏幕,这是基线 系统假设的密度 “中等”密度屏幕。在运行时, 系统透明地处理任何 必要时缩放 dp 单位, 根据实际密度 使用中的屏幕。 dp的转换 屏幕像素的单位很简单:px = dp * (dpi / 160)。例如,在一个 240 dpi 屏幕,1 dp 等于 1.5 物理像素。您应该始终使用 定义您的 dp 单位时 应用程序的用户界面,以确保正确 在屏幕上显示您的 UI 不同的密度。
【讨论】: