android中的不同值文件夹

时间:2014-01-22 10:28:03

标签: android resources dimensions

我正在我的应用values中创建不同的(values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi, values-nodpi, values-w360dp-mdpi)个文件夹。但有些设备属于同一类别。但有不同的屏幕尺寸。但我看到give font size according to device densities,@ PankajSharma提供的答案建议创建像 -

这样的文件夹
res/values/dimens.xml    
res/values-small/dimens.xml    
res/values-normal/dimens.xml    
res/values-xlarge/dimens.xml

我想知道我的方式和其他方式有什么区别?我认为@PankajSharma提供的答案很简单。我也想知道哪种方式更好?

2 个答案:

答案 0 :(得分:74)

您使用的方法是一种有效的方法,但有点过时。从HoneyComb开始,有new way来解决所有这些问题。您的资源文件夹现在应如下所示:

enter image description here

请参阅我发布的链接并熟悉Smallest Width概念。

希望这会有所帮助:)

编辑:添加到这篇文章,尝试在dimens.xml中建立某种标准化,如下所示:

enter image description here

这样做可以更轻松地维护代码,还可以减少dimen个文件夹的数量。通常情况下,而不是values-hdpivalues-xhdpi等文件,例如values-sw480dp-xhdpi可能有更多值要调整,但是所有这些都是上下文的。

答案 1 :(得分:16)

为布局文件夹中的默认屏幕4.7英寸(hdpi)和值文件夹中的尺寸创建单一布局。这是 Superset

现在假设您想要7英寸设备的布局。为纵向方向的7英寸创建值-sw600dp文件夹

现在假设你想要10英寸设备的布局创建值-dw720dp文件夹

注意: - 对于横向,只需在文件夹名称前添加“-land”。

现在假设你有新的设备,如Xperia SP(4.7'和XHDPI)和Nexus 5(5“和XXHDPI)。

对于这些,你可以创建values-xhdpi和values-xxhdpi文件夹以及类似的添加-land用于横向..

我希望你明白如何创建文件夹..

现在,您的超集在values文件夹中定义。大多数尺寸仅在此处使用。现在在其他设备上运行您的应用。无论发生什么不匹配,只需在各自的值文件夹中添加特定维度

要检查您的布局,图像使用哪个文件夹,请使用我的技巧。

创建五个相同的字符串,并将所有值文件夹放入其中,如下所示: - 默认屏幕 屏幕4.7 XHDPI屏幕 MDPI屏幕

创建五个可绘制文件夹,其中大部分都已存在: - drawable-hdpi,drawable-mdpi,drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi 将下面的屏幕截图放在相同名称的相应文件夹中

enter image description here enter image description here enter image description here enter image description here enter image description here

这是我的res文件夹的样子,我支持4.7及以上版本的所有设备: -

enter image description here