Android基线dpi无助于计算屏幕百分比

Android基线dpi无助于计算屏幕百分比,android,android-layout,dpi,Android,Android Layout,Dpi,如果版面具有android:layout\u width=“160dp”,则会在hdpi Nexus S emulator上呈现一半屏幕 我原以为Nexus4模拟器(xhdpi)和Nexus5模拟器(xxhdpi)会相应地扩展,并向我展示占据一半屏幕的布局,但他们没有。他们不到一半(2/5英寸) 我错过了什么?我认为XML环境总是使用一个特定的屏幕,因此我可以在此基础上进行计算 如果320dp=480px/(240dpi/160),且Nexus S为hdpi(高)~240dpi。有道理,它的16

如果版面具有android:layout\u width=“160dp”,则会在hdpi Nexus S emulator上呈现一半屏幕

我原以为Nexus4模拟器(xhdpi)和Nexus5模拟器(xxhdpi)会相应地扩展,并向我展示占据一半屏幕的布局,但他们没有。他们不到一半(2/5英寸)

我错过了什么?我认为XML环境总是使用一个特定的屏幕,因此我可以在此基础上进行计算

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

然后,Nexus5是xxhdpi(超高)~480dpi,高清分辨率

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

什么?为什么


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

事实上,正如Budius评论的那样,您不能依靠dp将屏幕划分为多个部分,因为它只会帮助您对屏幕大小有一个相对的了解,从而减少您需要重新计算的大小,但不能有效地替换所有单位大小,如原始百分比


使用权重是一种方法。

屏幕宽度并不总是相同的。所以,如果你想把屏幕分成两半,你应该用重量来表示sure@DerGolem,编辑,谢谢。@Budius,想发布答案吗?