android 中的不同值文件夹

问题描述 投票:0回答:3

我正在我的应用程序中创建不同的

values
文件夹
(values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi, values-nodpi, values-w360dp-mdpi)
。但有些设备属于同一类别。但屏幕尺寸不同。但我看到根据设备密度给出字体大小,@PankajSharma 提供的答案建议创建类似的文件夹-

res/values/dimens.xml    
res/values-small/dimens.xml    
res/values-normal/dimens.xml    
res/values-xlarge/dimens.xml

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

android resources dimensions
3个回答
78
投票

您使用的方法是有效的方法,但有点过时。从

HoneyComb
开始,有一种新方法可以解决所有这些问题。您的资源文件夹现在应如下所示:

enter image description here

请参阅我发布的链接并熟悉

Smallest Width
概念。

希望这有帮助:)

编辑:添加到这篇文章中,尝试在您的

dimens.xml
中建立某种标准化,如下所示:

enter image description here

这样做可以更轻松地维护代码,而且还可以减少

dimen
文件夹的数量。通常,像
values-hdpi
这样的文件可能有更多需要调整的值,而不是
values-xhdpi
values-sw480dp-xhdpi
等,但话又说回来,所有这些都是上下文相关的。


16
投票

在布局文件夹中为默认屏幕 4.7 英寸 (hdpi) 创建单一布局,并在值文件夹中创建尺寸。这是你的超级组

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

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

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

现在假设您有新设备,例如 Xperia SP(4.7 英寸和 XHDPI)和 Nexus 5(5 英寸和 XXHDPI)。

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

我希望您了解如何创建文件夹..

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

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

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

创建五个可绘制文件夹,其中大部分已经存在: - 可绘制-hdpi、可绘制-mdpi、可绘制-xhdpi、可绘制-xxhdpi、可绘制-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


0
投票

我在一个项目中遇到了这个问题,我找到的解决方案是使用MVMANH(坦克兄弟!)的android-auto-generate-dimension,它非常容易使用,以下是如何进行:

1 - 将 autodimension.gradle 文件从 repository 复制到 Android 项目的根文件夹;

2 - 在模块级别调用 build.gradle 中的方法,创建

apply from: '../autodimension.gradle'
;

类型的条目

3 - 通过执行此操作,您将能够在终端命令 ./gradlew createDimen (

mac/linux
) 或 gradlew.bat createDimen (
Windows
) 中使用 gradlew 调用任务。

就是这样,它将创建您在 autodimension.gradle 文件中的 createDimen 方法中指定的所有尺寸。

如果你想指定你想要的尺寸,只需更改任务寄存器中的方法,文件的第320行

它在这里工作,我在几个设备上测试了它,屏幕调整得很好。

希望对你有帮助

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.