Android res/layout中布局文件怎样管理( 二 )


values/
包含字符串、整型数和颜色等简单值的 XML 文件。
其他 res/ 子目录中的 XML 资源文件是根据 XML 文件名定义单个资源,而 values/ 目录中的文件可描述多个资源。对于此目录中的文件,\u0026lt;resources\u0026gt; 元素的每个子元素均定义一个资源。例如,\u0026lt;string\u0026gt; 元素创建 R.string 资源,\u0026lt;color\u0026gt; 元素创建 R.color资源。
由于每个资源均用其自己的 XML 元素定义,因此您可以根据自己的需要命名文件,并将不同的资源类型放在一个文件中。但是,为了清晰起见,您可能需要将独特的资源类型放在不同的文件中。 例如,对于可在此目录中创建的资源,下面给出了相应的文件名约定:
arrays.xml,用于资源数组(类型化数组)。colors.xml:颜色值。dimens.xml:尺寸值。strings.xml:字符串值。styles.xml:样式。请参阅字符串资源、样式资源和更多资源类型。
xml/可以在运行时通过调用 Resources.getXML() 读取的任意 XML 文件。各种 XML 配置文件(如可搜索配置)都必须保存在此处。
注意:切勿将资源文件直接保存在 res/ 目录内,这会导致出现编译错误。
如需了解有关某些资源类型的详细信息,请参阅资源类型文档。
保存在表 1 中定义的子目录下的资源是“默认”资源。即,这些资源定义应用的默认设计和内容。但是,采用 Android 技术的不同设备类型可能需要不同类型的资源。例如,如果设备的屏幕尺寸大于标准屏幕,则应提供不同的布局资源,以充分利用额外的屏幕空间。 或者,如果设备的语言设置不同,则应提供不同的字符串资源,以转换用户界面中的文本。 要为不同的设备配置提供这些不同资源,除了默认资源以外,您还需要提供备用资源。
提供备用资源https://developer.android.com/images/resources/resource_devices_diagram2.png
图 1. 两种不同的设备,均使用不同的布局资源。
几乎每个应用都应提供备用资源以支持特定的设备配置。 例如,对于不同的屏幕密度和语言,您应分别包括备用可绘制对象资源和备用字符串资源。 在运行时,Android 会检测当前设备配置并为应用加载合适的资源。
为一组资源指定特定于配置的备用资源:
在 res/ 中创建一个以 \u0026lt;resources_name\u0026gt;-\u0026lt;config_qualifier\u0026gt; 形式命名的新目录。\u0026lt;resources_name\u0026gt; 是相应默认资源的目录名称(如表 1 中所定义)。\u0026lt;qualifier\u0026gt; 是指定要使用这些资源的各个配置的名称(如表 2 中所定义)。您可以追加多个 \u0026lt;qualifier\u0026gt;。以短划线将其分隔。注意:追加多个限定符时,必须按照表 2 中列出的相同顺序放置它们。如果限定符的顺序错误,则该资源将被忽略。将相应的备用资源保存在此新目录下。这些资源文件的名称必须与默认资源文件完全一样。例如,以下是一些默认资源和备用资源:
res/ drawable/ icon.png background.png drawable-hdpi/ icon.png background.png hdpi 限定符表示该目录中的资源适用于屏幕密度较高的设备。其中每个可绘制对象目录中的图像已针对特定的屏幕密度调整大小,但是文件名完全相同。 这样一来,用于引用 icon.png 或 background.png 图像的资源 ID 始终相同,但是 Android 会通过将设备配置信息与资源目录名称中的限定符进行比较,选择最符合当前设备的各个资源版本。
Android 支持若干配置限定符,您可以通过使用短划线分隔每个限定符,向一个目录名称添加多个限定符。表 2 按优先顺序列出了有效的配置限定符;如果对资源目录使用多个限定符,则必须按照表中列出的顺序将它们添加到目录名称。


推荐阅读