【问题标题】:Android Layout Folder OverriddenAndroid 布局文件夹被覆盖
【发布时间】:2014-07-01 00:41:16
【问题描述】:

我已将我的常量文件放在 values-xhdpivalues-w768dp .....

正在开发 Nexus 4 (768x1184)

but it taking resource from **values-xhdpi** only instead of **values-w768dp** which is most generic for it.

In addition with that is it proper naming convention **values-w768dp-h1184dp**

请让我摆脱它。

【问题讨论】:

    标签: android layout overriding directory


    【解决方案1】:

    资源文件夹(如values-hdpivalues-xhdpi 等)正在使用基于Density-independent pixel - dp (dpi) 的分辨率。而限定符-wXXXdp 是基于dp 中的设备宽度。

    您所基于的设备的分辨率以实际像素表示,而不是以dp 表示。 以防万一:1184=1280-96,其中 96px 是导航栏的高度。

    Nexus 4 的屏幕密度为320 PPI,对应values-xhdpi

    阅读this article 以更好地了解pxdp 之间的区别。

    This part 对你特别有帮助。

    【讨论】:

    • @@Ivan,非常感谢您对我的帮助。这次我创建了一个名为 values-w384dp (768px = 384dp) 的文件夹,它工作正常。但是我仍然更加焦虑,为什么 values-w384dp-h592dp (768x1184px == 384x592dp) 不起作用?
    • @Amit 你必须使用-hdpi-xhdpi 等限定符。它们的创建是为了处理更广泛的设备。使用w384dp 之类的东西是一种非常糟糕的方法。它只是扼杀了所有 Android 开发原则。即使在宽度 = 385dp383dp 的设备上它也不起作用你必须转换不是768px1184px,而是768x1280px
    • @Amit 好吧,你可以接受我的回答是正确的
    • @@Ivan,我接受了你的回答。但是再一次请考虑一个场景,我有 3 个设备说 768x1184 (Nexus 4)、720x1184 (GenyMotion Nexus) 和 720x1280 (Samsung GT-I9300) 都具有 DPI-320 意味着都从 X-HDPI 文件夹中获取资产而不是如何我写了一个适用于所有三个的布局?
    • @Admit 也许,如果您分享布局概念,我可以帮助您。因为,我无法想象在这种情况下你有什么理由使用 3 种不同的布局。在具有如此高像素密度的 5 英寸显示器上,100 像素的分辨率差异是无法观察到的。这意味着您可以将这 3 种分辨率视为相等。
    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    相关资源
    最近更新 更多