2012-07-20 59 views
8

参考:http://developer.android.com/guide/practices/screens_support.htmlXLARGE VS sw720dp屏幕尺寸的混乱

旧式的大小量词是 “过时”:

一组四个广义的大小:小,中,大,XLARGE 注:从Android 3.2(API级别13)开始,这些大小组 已被弃用,以支持在可用屏幕宽度上基于 管理屏幕大小的新技术。如果您正在开发Android 3.2 及更高版本,请参阅为Android 3.2声明Tablet Layouts以获取更多 信息。

我一直希望具有3.2+的设备仍然使用在drawable-large-mdpi或layout-xlarge中声明的资源,但这似乎并不是这种情况。

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

  • 布局sw600dp
  • 布局720dp
  • 布局XLARGE
  • 布局

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

更为奇特的,是我在这些文件夹可绘:

  • 绘制-sw600dp-MDPI
  • 绘制-XLARGE - MDPI

10" 个摩托罗拉XOOM从上面,从drawable-sw600dp-mdpi中选取图像为什么不选择可绘制的drawable-xlarge-mdpi?

我们不应该期望xlarge quantifier能够在Android 3.2之上工作吗?

这是否意味着我必须复制所有资产提拉 - XLARGE - MDPI文件夹,进入绘制-sw720dp-MDPI文件夹? (支持Android 3.0,3.1和3.2 +?)

但愿我只是在这里失踪简单的东西。请指教。

+0

我有同样的问题。我目前正在使用sw600dp文件夹更改Nexus 7的一些布局。创建此文件夹后,所有平板电脑都使用sw600dp。 – bencallis 2012-07-22 10:18:41

回答

6

从我的理解,为Android 3.2+,如果你有一个使用新的大小量词至少一个文件夹,然后它假定您随处使用这些新尺寸的量词。所以这就是为什么它会忽略layout-xlarge或其他使用旧量词的文件夹。

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

+0

xml别名可用于与布局相同的drawables – cjayem13 2014-09-12 20:39:27