您应该始终外部化资源,例如图像和应用代码中的字符串,这样有利于您单独维护这些资源。 此外,通过外部化资源,您还可以提供支持特定设备配置(例如,不同的语言或屏幕尺寸)的备用资源,随着采用 Android 技术且配置各异的设备越来越多,这些资源的重要性也日益增加。 为了提供与不同配置的兼容性,您必须使用各种按类型和配置对资源进行分组的子目录,对项目 res/
目录中的资源加以组织。
对于任意类型的资源,您均可以为应用指定默认资源和多个备用资源:
- 默认资源系指无论设备配置如何,或者在没有备用资源与当前配置相匹配时,均应使用的资源。
- 备用资源系指设计用于特定配置的资源。 要指明某组资源适用于特定配置,请将相应的配置限定符追加到目录名称。
例如,尽管默认 UI 布局保存在 res/layout/
目录中,但是您可以指定在屏幕处于横向时要使用的不同布局,方法是将其保存在 res/layout-land/
目录中。 Android 可以通过将设备的当前配置与资源目录名称进行匹配,自动应用合适的资源。
图 1 说明了在没有备用资源可用时,系统如何为两种不同的设备应用相同布局。 图 2 显示的是同一应用针对大屏幕添加了备用布局资源。