如果布局有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?依靠重量和网格?
答案 0 :(得分:0)
事实上,正如Budius评论的那样,你不能依靠dp将屏幕分成几个部分,因为它只会帮助创建对尺寸的相对理解,从而减少你需要做的计算重新调整大小的数量,但是没有有效地替换所有单位大小,例如原始百分比会做什么。
使用权重是可行的方法。