8

供参考:http: //developer.android.com/guide/practices/screens_support.html

旧式大小量词已“弃用”:

一组四种通用尺寸:small、normal、large 和 xlarge 注意:从 Android 3.2(API 级别 13)开始,这些尺寸组已被弃用,取而代之的是一种基于可用屏幕宽度管理屏幕尺寸的新技术。如果您正在为 Android 3.2 及更高版本进行开发,请参阅为 Android 3.2 声明平板电脑布局以获取更多信息。

我希望 3.2+ 的设备仍会使用在 drawable-large-mdpi 或 layout-xlarge 中声明的资源,但似乎并非如此。

我有一个测试项目,其中包含每种尺寸的布局文件:

  • 布局-sw600dp
  • 布局-720dp
  • 布局-xlarge
  • 布局

在运行 Android 4.0.x 的 10" 摩托罗拉 XOOM 上,设备选择 layout-720dp 文件夹中的布局。如果该文件夹不存在,它会选择 layout-sw600dp 文件夹中的布局! 为什么不选择layout-xlarge 中的布局?

更奇怪的是,我在这些文件夹中有可绘制对象:

  • 可绘制-sw600dp-mdpi
  • 可绘制-xlarge-mdpi

上面的 10" 摩托罗拉 XOOM,从 drawable-sw600dp-mdpi 中选择图像。 为什么它不选择 drawable-xlarge-mdpi 中的 drawable?

我们不应该期望 xlarge 量词在 Android 3.2 上运行吗?

这是否意味着我必须将 drawable-xlarge-mdpi 文件夹中的所有资产复制到 drawable-sw720dp-mdpi 文件夹中?(要支持 Android 3.0、3.1 和 3.2+?)

希望我只是在这里遗漏了一些简单的东西。请指教。

4

1 回答 1

6

据我了解,对于 Android 3.2+,如果您至少有一个使用新大小量词的文件夹,那么它假定您在任何地方都使用这些新大小量词。所以这就是它忽略 layout-xlarge 或任何其他使用旧量词的文件夹的原因。

关于向后兼容性,您必须在项目中使用两种类型的量词。旧的将用于 API < 3.2,新的用于 API >= 3.2。为避免重复,对于布局,您可以使用别名。但是,对于可绘制对象,我不知道有任何避免重复的解决方案。

于 2012-07-23T18:43:26.967 回答