Android 仿真器HDPI与MDPI与LDPI
在不同DPI(120、160、240)下启动相同分辨率为480x800的android模拟器时,我认为DPI最高的屏幕的界面元素(图像、按钮等)最小,DPI最低的屏幕的界面元素最大。但事实恰恰相反。我已经包括了一个屏幕截图来演示我的意思 我的模拟器设置是: HDPI:Android 仿真器HDPI与MDPI与LDPI,android,android-emulator,Android,Android Emulator,在不同DPI(120、160、240)下启动相同分辨率为480x800的android模拟器时,我认为DPI最高的屏幕的界面元素(图像、按钮等)最小,DPI最低的屏幕的界面元素最大。但事实恰恰相反。我已经包括了一个屏幕截图来演示我的意思 我的模拟器设置是: HDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:240 MDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:160 LDPI: 皮肤分辨率:480x800 抽象液晶显示器密度:120 我使用以下设置启动了每个模
- 皮肤分辨率:480x800
- 抽象液晶显示器密度:240
- 皮肤分辨率:480x800
- 抽象液晶显示器密度:160
- 皮肤分辨率:480x800
- 抽象液晶显示器密度:120
- 按实际尺寸缩放显示
- 屏幕尺寸:5英寸
- 监测新闻部:105
- 比例:0.56
是我做错了什么,还是这是预期的结果?如果是的话,为什么会这样?如果我在Photoshop(查看打印选项)中执行相同的操作,我会得到完全相反的正确结果。问题原来是简单的数学问题。如果我们把计算DPI的公式取为
dpi = sqrt(height^2 + width^2)/(screen size in inches)
很明显,在运行模拟器时,您不能选择所有三个组件——只有两个,android将计算缺少的组件
根据我上面的原始问题,我指定了一个恒定的分辨率(480x800)和一个恒定的屏幕大小(5英寸)。但是480x800总是产生大约186 DPI的DPI。因此,在这些情况下,强制DPI不同会让Android emulator感到困惑,我认为它放弃了我指定的原始分辨率,并计算了自己的分辨率。这是意料之中的。Android增加了默认字体大小,以应对更高的DPI。目标是在一定的物理屏幕大小(比如3“)下,字体具有相同的物理大小,无论其分辨率如何。高密度显示器的像素较小,因此,当设置DPI设置较高时,Android需要使用较大的字体来显示与屏幕相同的大小