【发布时间】:2013-12-10 00:44:06
【问题描述】:
问题:
我正在使用 Eclipse/ADT 包测试我的应用程序。在为模拟 Galaxy S4(定义为 “正常” 大小的设备)创建的 AVD 上,操作系统正在从 values-large 文件夹中选择 XML 文件。
Android 操作系统忽略了我为区分 S4 和平板电脑而定义的所有其他值文件夹。
给定以下文件夹,它为 S4 选择 values-large 文件夹:
values-large
values-sw720dp
values
values-normal-hdpi
values-normal-mdpi
values-normal-xhdpi
values-normal-xxhdpi
values-normal
问题是我有 Master/Detail (ListFragment/Detail-Fragment) 两个片段显示,只能在大屏幕(平板电脑)上正确显示。由于设备的大小,它无法在 S4 上正确显示。在小于 6" 宽的设备上,图标最终会显示在文本顶部,而不是文本右侧。唯一的区别是 S4 是横向的。
S4 是唯一一款正常尺寸的设备,可以横向显示两窗格布局。 Nexus 4 和其他人不能。在风景中,S4 的额外密度是它工作的原因。
我也不希望 S4 使用 values-large 目录中的 dimens.xml 文件。
问题:
这是正常/预期的行为吗?操作系统是否将 S4 归类为“大型”设备?操作系统忽略了我尝试用于定位 S4 的所有其他文件夹名称。因此,它更喜欢 3.2 之前的名称而不是较新的名称。
换句话说,当我尝试使用较新的文件夹名称时,例如 values-sw720dp,操作系统仍会选择大文件夹。
我有两个 AVD。我创建了一个以匹配 S4 的规格。另一个是 Sony Xperia Z1,它具有相同的规格,并且在您安装 Sony SDK 时可用。两个 AVD 均设置为 size=normal。我已经检查了每一个,以确保它们的设置没有错误。
谢谢。
编辑
我有一个新的 LG G2,它在尺寸和密度上与 S4 相似。它不使用 values-large 目录。我认为它正在使用values-normal-xxhdpi,但需要运行更多测试(更改dimens.xml 中的维度值)以查看它选择的目录。
【问题讨论】:
-
您的问题写得相当混乱。包含所需资源的最终的、完整的资源目录集是什么?
-
@CommonsWare,我已经对其进行了编辑以使其更清晰。它奏效了吗?谢谢。
-
您正在尝试拥有同时具有屏幕尺寸和屏幕密度限定符的资源目录。结果不太可能是你想要的。
-
Nexus 5 与 S4 基本相同,因此在您的示例中,它不是“唯一可以显示双窗格布局的正常尺寸设备”