【问题标题】:Screen density confusion屏幕密度混乱
【发布时间】:2017-08-18 07:48:22
【问题描述】:

让我先说说我所做的研究。

developer.android.com 上,它声明应执行以下操作以支持不同的屏幕尺寸:

  • res/layout/my_layout.xml // layout for normal screen size ("default")

  • res/layout-large/my_layout.xml // layout for large screen size

  • res/layout-xlarge/my_layout.xml // layout for extra-large screen size

  • res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation

它还指出drawables应该像这样缩放:

要为不同密度创建替代位图可绘制对象,您应该遵循六种通用密度之间的 3:4:6:8:12:16 缩放比例。例如,如果您有一个用于中等密度屏幕的 48x48 像素的可绘制位图,则所有不同的尺寸应该是:

  • 36x36 (0.75x) 用于低密度
  • 48x48(1.0x 基线)用于中等密度
  • 72x72 (1.5x) 用于高密度
  • 96x96 (2.0x) 用于超高密度
  • 144x144 (3.0x) 用于超超高密度
  • 192x192 (4.0x) 用于超超超高密度

现在这是我的问题,假设我正在为 nexus 10 设计横向模式。然后此设备将属于res/layout-large-land/,其屏幕密度将低于(2.0x) for extra-high-density - xhdpi

但我不明白的是,nexus 10 具有平板电脑大小的屏幕,但它属于 xhdpi,这意味着将从可绘制资源文件夹中获取的图像在此设备上显示得更小。我已经在 nexus 10 和我的手机上对此进行了测试,并且在 nexus 10 上的图像要小得多,正如我所期望的那样。

我已经对此感到困惑一段时间了,我已经做了很多研究。任何人都可以帮我澄清这些。谢谢。

【问题讨论】:

    标签: android android-layout android-drawable android-screen-support


    【解决方案1】:

    Nexus 10 肯定有平板电脑大小的屏幕(10.1 英寸),但属于xhdpi(超高密度)类别,因为它的Pixel Per inch(ppi) 只有 299。您可以轻松识别设备属于哪个类别通过检查它的 DPI 进入。下面是不同类别的密度。

    • ldpi - 120 dpi
    • mdpi - 160 dpi
    • hdpi - 240 dpi
    • xhdpi - 320 dpi
    • xxhdpi - 480 dpi

    在这种情况下,同样具有平板尺寸屏幕的三星 Galaxy Tab 10 英寸平板电脑的 PPI 仅为 149。因此,它属于mdpi 类。请参考this site,这有助于轻松了解哪个设备具有什么 dpi 及其密度等级。还建议This website 了解有关不同设备屏幕尺寸的更多信息。

    补充一点信息,Nexus 10 平板电脑是xhdpi 设备,但它的启动器图标使用xxhdpi 类(可以说是应用程序中最重要的部分)。

    【讨论】:

    • 如果答案解决了问题,请点击答案旁边的勾号图标接受,以供未来用户参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2015-04-01
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多