Android屏幕尺寸,values-v11,values-v14。

18

我在我的res文件夹中发现了几个values文件夹:

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp  
res/values-normal/ ==    res/values-v11/ ???
res/values-xlarge/ ==   res/values-v14/  ???

我是对的吗?还是需要创建另一个名为values-xlargevalues-normal的文件夹?

3个回答

50

values-v11 是API版本11的值,values-v14 是API版本14的值。

需要说明的是,即使有更高版本的文件夹存在,values-v11 也将用于API版本11及以上。例如,如果您有 values-v11values-v14 文件夹,则在API 11、12、13上将使用 values-v11,但在API 14及更高版本中,将使用 values-v14 的内容。


3
如果我有 valuesvalues-v11values-v16,如果我删除除了 values 以外的所有文件夹,会出现错误吗?还是所有 API 版本都会使用相同的 styles 文件夹? - Eduard Luca
3
在这种情况下,所有的API版本都将采用“values”目录。 - userM1433372
7
这并不完全准确。应该是 values-v11 是指 API 版本大于等于 11 的值,直到下一个定义的版本为止。在这个例子中,values-v11 将匹配 API 11-15,而 values-v16 将匹配 API 版本大于等于 16。 - Uipko
是的,那是重要的注释。我编辑了我的回答,感谢你指出这一点。 - Marcin Orlowski

8
不,这个“等式”是不正确的:

res/values-normal/ == res/values-v11/ ???
res/values-xlarge/ == res/values-v14/ ???

xlarge 定义了屏幕大小(因此这些值将在显示器与 xlarge 要求相匹配的设备上使用),而 v14 则确定 API 版本(冰淇淋三明治 - 请参见此处)。不能保证(甚至假定)每个 xlarge 设备都必须运行 v14 API,或者每个 ICS 设备都具有 xlarge 屏幕。


3
例子:Galaxy S II 是一款拥有“大屏幕”的手机,可以配备版本为“v9”、“v10”、“v14”或“v15”的系统。 - Cat
1
一般来说,如果您可以安装自定义固件和API版本,那么您可以使用任何东西,但是更改硬件规格并不容易。 - Marcin Orlowski

3

我该如何为 pre-ICS 和 ICS+ 定义值?我需要分别指定每个平台吗?还是 values-v10 从 GB 开始就可以使用? - Frederic Yesid Peña Sánchez
1
将所有早于ICS的资源放在“values”目录中,将所有ICS及以上版本的资源放在“values-v14”目录中。 v1-v13将映射到“values”目录,v14+将映射到“values-v14”目录。 您可以在所有资源目录中使用版本限定符。因此,layout-v14将包含所有v14+布局文件。 - userM1433372
我应该在一个独立的问题中问这个问题,这样你就可以将自己标记为有效答案!!! - Frederic Yesid Peña Sánchez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接