【问题标题】:Android baseline dpi does not help calculate screen percentageAndroid 基线 dpi 无助于计算屏幕百分比
【发布时间】:2015-04-17 15:32:30
【问题描述】:

如果布局有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 吗?靠重量和格子?

【问题讨论】:

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

标签: android android-layout dpi


【解决方案1】:

确实,正如 Budius 评论的那样,您不能依赖 dp 将您的屏幕划分为多个部分,因为它只会帮助创建对大小的相对理解,从而减少您需要进行的计算调整大小的数量,但确实不能有效地替换所有单位大小,例如原始百分比的作用。

使用权重是要走的路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    相关资源
    最近更新 更多