我在Android模拟器上测试我的应用程序。在一个屏幕上,我有一个横幅广告。广告的尺寸为320x50。
当我启动分辨率为480x800和240dpi(hdpi)的模拟器时,横幅广告会占据整个屏幕宽度。
当我启动具有相同分辨率但160dpi(mdpi)的模拟器时,横幅广告仅占据屏幕的一部分(我预期的480个像素中的320个)
我无法理解为什么480x800设备的屏幕宽度为320dp?根据我的理解,在480px宽的设备上显示320px宽的图像肯定会留下一些空间。我没有看到dpi如何影响那里的任何东西,因为分辨率是相同的。我相信较高的dpi只意味着物理设备将具有更小的屏幕
答案 0 :(得分:8)
HDPI的480x800设备的屏幕宽度为320dp。正如Google's docs所说,“在240 dpi的屏幕上,1 dp等于1.5个物理像素”。这意味着在HDPI屏幕上指定为320dp的资源将显示为320 * 1.5 = 480像素。
在mdpi(160dpi)的情况下,我认为dp和px是1:1,因此320dp宽的资源将显示为320 * 1 = 320像素。请注意,很少有宽度为480px的mdpi设备,这是一个非常大且像素化的屏幕。