Android baseline dpi无法帮助计算屏幕百分比

时间:2015-04-17 15:32:30

标签: android android-layout dpi

如果布局有android:layout_width="160dp",它会在hdpi Nexus S模拟器上呈现一半的屏幕。

我期待Nexus 4模拟器(xhdpi)和Nexus 5模拟器(xxhdpi)相应缩放,并向我展示占据屏幕一半的布局,但他们没有。它们不到一半(2/5 ish)。

我错过了什么?我认为XML环境总是使用特定的屏幕,所以我可以从那里开始计算。

如果320dp = 480px /(240dpi / 160)且Nexus S是hdpi(高)~240dpi。有意义的是它的160dp是屏幕的一半。

然后,Nexus 5是xxhdpi(超高 - 高)~480dpi,具有高清分辨率。

所以,1080px /(480dpi / 160)= 360dp!

什么?为什么呢?!

当我想分割屏幕资源时,是否应该避免使用dp?依靠重量和网格?

1 个答案:

答案 0 :(得分:0)

事实上,正如Budius评论的那样,你不能依靠dp将屏幕分成几个部分,因为它只会帮助创建对尺寸的相对理解,从而减少你需要做的计算重新调整大小的数量,但是没有有效地替换所有单位大小,例如原始百分比会做什么。

使用权重是可行的方法。