资源具体化

不管你使用什么开发环境,一个良好的习惯就是保存非代码的资源(像图片,字符串常量等)到你的代码的外部。Android支持资源具体化,这些资源范围包括从简单的值(字符串,颜色)到更加复杂的资源(图片(drawables),动画和主题等)。 也许,用来具体化显示的最强大的资源要数layouts(布局)了。

 

通过资源具体化,它们的维护、更新和管理变得更加容易。当然,它也允许你更加容易地定义一些可变资源来支持不同的硬件和国际化。

 

在后面的章节中,你将会看到Android如何动态地从资源树中选择资源以及允许你定义可变的值基于设备的硬件配置、语言和地区。它允许你为特定的语言、国家、屏幕和键盘创建不同的资源值。当应用程序启动时,Android会自动地选择正确的资源,而不需要写任何一行代码。

 

其他的情况,它允许你基于屏幕的大小和方向变换layout,以及基于语言和国家变换特定的文本提示。

 

 

创建资源

 

应用程序的资源存储在工程目录的/res文件夹下。在这个文件夹中,每个可用的资源类型可以有一个子文件夹来放置它的资源。

 

如果你使用ADT向导创建工程的话,它会创建/res文件夹,并包含valuesdrawablelayout资源子文件夹,用来放置默认的layout,应用程序图标和预定义的字符串资源。如图3-4所示。

 

3-4

 

这里有七种基本的资源类型,它们拥有不同的文件夹:valuesdrawableslayoutsanimationsXMLstylesraw resources。当应用程序创建时,这些资源会尽可能切实有效地得到编译,并包含到应用程序包中。

 

在这个过程中,向导也会为我们创建一个R类的文件,其中包含了工程中资源文件的引用。这些引用可以直接在代码中使用,借助实时的语法检查。

 

在接下来的章节里,将会描述上述七种类型的资源类型以及如何为应用程序创建它们。

 

需要注意的是,资源名只能包含小写字母、数字、“.”和“_”。

 

          Values

          Drawables

          StylesThemes

          Layouts

          Animations

 

 

使用资源

 

和你创建的资源一样,Android提供了一些可以在应用程序中使用的系统资源。这些资源可以通过代码直接使用,也可以在其他资源中被引用(例如,一个尺寸资源可能在layout资源中引用)。

 

在这章的后面,你会学习到如何为不同的语言、地区和硬件定义变化的资源。需要着重提醒你的是,当你使用资源时,你不能选择特定的资源版本。Android会基于当前的硬件和设备设定,按照给定的资源标识选择最合适的值。

      在代码中使用资源 
      在资源中引用资源
      使用系统资源
      To-Do List资源例子

为不同的语言和硬件创建资源

实时改变配置

posted on 2009-07-17 17:53  xirihanlin  阅读(588)  评论(0编辑  收藏  举报