android - 为什么像素密度较高的设备屏幕空间较小? ( eclipse AVD)

标签 android resolution avd dpi pixels

在 Eclipse 的 AVD 中,我创建了两个相同的设备,除了它们的密度值。设备 1 的抽象 LCD 密度为 240;设备 2 有 160。两者的分辨率都是 480x800。

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

设备 1

Device_1_Screenshot

设备 2

Device_2_Screenshot

屏幕截图 -(点击查看大图)

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

最佳答案

您使用的是 dp,而不是物理像素。 dp 尝试从物理尺寸中抽象出来,并为用户提供相同物理尺寸的 GUI 元素。因此,如果一台设备上的像素较小,您需要使用更多的物理像素才能获得与像素较大的设备相同的效果。

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

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

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

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

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

160 dpi device 240 dpi devce

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

关于android - 为什么像素密度较高的设备屏幕空间较小? ( eclipse AVD),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13456835/

相关文章:

android - 线程和音频同时播放

android - 高度 match_parent 的 View 在 recyclerview 项目中不可见

Android Studio 无法在模拟器中启动 AVD。/opt/sdk/tools/emulator : Syntax error: word unexpected (expecting ")")

c# - 保存更高分辨率的图表而不会弄乱外观

php - 如何使用 PHP 获取用户的屏幕分辨率

android - 在 Windows 7 上的 Eclipse 中调试 Genymotion

android - AVD 不创建 config.ini 文件

android - 如何为旧版本创建 ICS Holo 风格编辑文本?

android - Firebase Analytics 控制台仪表板中的内部错误

android - 我需要 14 种不同的布局来支持所有 Android 设备吗?