在不同的DPI(120,160,240)下启动具有相同分辨率480x800的android模拟器,我认为具有最高DPI的屏幕将具有最小的界面元素(图像,按钮等)和具有最低的DPI将是最大的。但恰恰相反。我已经包含了一个屏幕截图来展示我的意思。
我的模拟器设置为:
HDPI:
MDPI:
LDPI:
我使用以下设置启动了每个模拟器:
我做错了什么,或者这是预期的结果?如果是,为什么它会以这种方式表现?如果我在Photoshop中进行等效操作(查看打印选项),我会得到完全相反且正确的结果。
答案 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需要使用更大的字体来相对于屏幕看起来大小相同。