我正在我的应用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提供的答案很简单。我也想知道哪种方式更好?
答案 0 :(得分:74)
您使用的方法是一种有效的方法,但有点过时。从HoneyComb
开始,有new way来解决所有这些问题。您的资源文件夹现在应如下所示:
请参阅我发布的链接并熟悉Smallest Width
概念。
希望这会有所帮助:)
编辑:添加到这篇文章,尝试在dimens.xml
中建立某种标准化,如下所示:
这样做可以更轻松地维护代码,还可以减少dimen
个文件夹的数量。通常情况下,而不是values-hdpi
,values-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 将下面的屏幕截图放在相同名称的相应文件夹中
这是我的res文件夹的样子,我支持4.7及以上版本的所有设备: -