前言
本章内容为Android开发者指南的Framework Topics/Application Resources章节,版本为Android 3.2 r1,翻译来自:"CodeGuy",欢迎访问他的博客:"http://www.cnblogs.com/CodeGuy/",再次感谢"CodeGuy" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。Application Resources
译者署名:CodeGuy
译者链接:http://www.cnblogs.com/CodeGuy/
版本:Android 3.2 r1
原文
http://developer.android.com/guide/topics/resources/index.html
当你写程序的时候应该习惯于把一些程序需要用到的资源,例如图片和字符串,分开并独立地保存在你的程序代码之外,这样你就可以独立地维护这些资源文件。将资源文件独立于代码之外,这样就允许你给程序提供更多可选的资源来支持一些特殊的设备配置,例如不同语言和不同屏幕大小。随着越来越多的Android设备开始支持不同的配置,这变得越来越重要。为了让这些Android设备兼容各种不同的配置,你必须得组织你的工程下面的res/ 目录,根据类型和配置,通过不同的子目录来对资源进行分组管理。
对于任意类型的资源,你都可以为你的程序指定默认的和多种可选的资源:
* 默认(缺省)的资源应该是那些可以在忽视设备的配置的情况下使用的或者当没有其他可匹配当前配置的可替代资源的情况下使用的资源。
* 可替代资源是那些你为特定配置而设置的资源。一个特定的配置对应一组特定的资源,然后给该资源文件夹添加一个合适的配置限定词作为命名。
(译者注:一组特定的资源即你的工程目录下的一个资源文件夹,res/layout这个布局文件夹)
例如,当你默认的UI布局保存在res/layout目录下,你可能要设置另一个不同的UI布局保存在res/layout-land/这个目录下,在你的屏幕是横向的时候使用。Android通过把设备当前的配置信息匹配到你的资源文件目录下的命名,自动调用恰当的资源。
图1. 两个设备使用的都是缺省(默认)的资源
图2.两种不同的设备配置,一个使用了可替代的资源
图1给我们展示了在没有可利用的可替代资源的情况下,一个应用程序的一组默认的资源是如何应用到不同的设备配置上的。图2 给我们展示了相同的应用程序在具有一组可替代的资源,并且每种资源限定于一种设备配置的情况下,这两种设备配置就会使用不同资源。
以上信息仅仅介绍了应用程序资源是如何应用在Android上的。下面的文档就如何组织管理你的应用程序中的资源、如何指定可替代的资源、如何在你的程序中使用它们等等提供了完整的指南:
这篇文档会说明你可以在你的应用程序中使用什么样的资源文件,这些资源文件分别保存在哪里,如何为特定的设备配置创建可替换的资源。
这篇文档会说明如何使用你提供的资源,或者说如何通过你的程序代码或者从其他XML类型的资源文件里面引用资源文件。
这篇文档会说明Activity处于运行状态时时如何管理配置当配置发生改变时。
这篇文档会一个自下而上地指导你如何使用可替换的资源文件来初始化你的应用程序虽然这只是一个特定用途的替代资源,但是这对于吸引更多用户是非常重要的。
这篇文档介绍各种你可以引用的各种资源类型,描述资源的XML元素、属性和语法。例如,这个引用将告诉你如何为应用程序的菜单,图片或颜色,动画等等创建一个资源。