仿真器HDPI与MDPI与LDPI的对比

时间:2011-07-28 00:49:45

标签: android android-emulator

在不同的DPI(120,160,240)下启动具有相同分辨率480x800的android模拟器,我认为具有最高DPI的屏幕将具有最小的界面元素(图像,按钮等)和具有最低的DPI将是最大的。但恰恰相反。我已经包含了一个屏幕截图来展示我的意思。Right to left: HDPI emulator, MDPI emulator, LDI emulator

我的模拟器设置为:

HDPI:

  • 皮肤分辨率:480x800
  • 抽象LCD密度:240

MDPI:

  • 皮肤分辨率:480x800
  • 抽象LCD密度:160

LDPI:

  • 皮肤分辨率:480x800
  • 抽象LCD密度:120

我使用以下设置启动了每个模拟器:

  • 将比例显示为实际尺寸
  • 屏幕尺寸:5英寸
  • 监视器dpi:105
  • 比例:0.56

我做错了什么,或者这是预期的结果?如果是,为什么它会以这种方式表现?如果我在Photoshop中进行等效操作(查看打印选项),我会得到完全相反且正确的结果。

2 个答案:

答案 0 :(得分:11)

问题证明是简单的数学。如果我们采用计算DPI的公式为

dpi = sqrt(height^2 + width^2)/(screen size in inches)

很明显,在运行模拟器时你不能选择所有三个组件 - 只有两个,android会计算缺少的组件。

从我上面的原始问题来看,我指定的是恒定分辨率(480x800)和恒定屏幕尺寸(5英寸)。但480x800总是产生大约186 dpi的DPI。因此,迫使DPI在每种情况下都不同于Android模拟器,我认为它丢弃了我指定的原始分辨率并自行计算。

答案 1 :(得分:0)

这是预期的。由于预期DPI较高,Android会增加默认字体大小。目标是在某个物理屏幕尺寸(比如3英寸)下,无论分辨率如何,字体都具有相同的物理尺寸。更高密度的显示器具有更小的像素,因此在设置更高的DPI设置时Android需要使用更大的字体来相对于屏幕看起来大小相同。