为什么更高像素密度的设备具有更少的屏幕空间? (Eclipse AVD)

时间:2012-11-19 15:25:39

标签: android resolution avd dpi pixels

在Eclipse的AVD中,我创建了两个除密度值外相同的设备。设备1的abstracted LCD density为240;设备2具有160.两者的分辨率为480x800。

有人可以向我解释为什么设备1屏幕上的元素看起来“更大”吗?由于它们具有相同的分辨率,它们不应该显示相同数量的像素吗?如果有的话,因为设备1具有更高的密度,是否应该显示更多详细信息/屏幕空间?

设备1

Device_1_Screenshot

设备2

Device_2_Screenshot

Screeshots - (点击查看大图)

如上所示,我在两个设备上的随机屏幕位置绘制一个半径为15dp的圆。设备2上的圆圈肯定更小,操作栏也是如此。这是为什么?

1 个答案:

答案 0 :(得分:8)

您使用 dp 绘图,而非物理像素。 dp 尝试从物理大小中抽象出来,并为用户提供相同物理大小的GUI元素。因此,如果一个设备上的像素较小,则需要使用更多物理像素来获得与具有更大像素的设备相同的效果。

所以: 每英寸800像素/ 240像素= 3 1/3英寸(该屏幕尺寸的物理长度)。一个像素的大小:1像素/ 240英寸每英寸= 0.004英寸。 每英寸800像素/ 160像素= 5英寸。一个像素的大小:1像素/每英寸160像素= 0.006英寸。

因此,使用相同的分辨率(像素数),较低密度设备中的像素显着更大(每个维度大约50%)。因此,您需要 less 物理像素来绘制圆圈以显示15 dp的圆圈。

简单地说:低dpi意味着更大的像素。相同的分辨率(像素数)意味着较低的dpi设备具有更大的屏幕。

因此,在物理设备上,这些圆圈在具有不同大小的设备上具有相同的物理尺寸。但是,您的仿真器窗口具有相同的大小,出于速度原因,一个物理像素映射到计算机屏幕上的一个物理像素。因此,您在低dpi设备上使用 less 像素,但使用相同大小的物理像素绘制它们。解决方案:您需要调整模拟器窗口的大小,使其与 real 大小匹配。我只是无法访问我的Android SDK安装,但IIRC你可以在AVD启动选项中设置(计算机)屏幕dpi,这样就可以自动设置大小。

以下是缩放图像以保留真实设备的比例:

160 dpi device 240 dpi devce

正如您所看到的,圆圈具有相同的物理尺寸,操作栏,图标和状态栏也是如此。