ITEEDU

创建资源

Android支持字符串,图片以及很多其他类型的资源。每个对象语法、格式以及它们存储位置的支持,都是取决于不同类型的对象? 通常,你可以通过三种类型的文件来创建资源:XML文件(除位图以及原数据文件),位图文件(对于图片)以及原始数据(其它类型,例如声音文件,等等。)。事实上,有两种不同类型的XML文件,一种是编译到包里的,另外一种是通过aapt来产生的资源文件, 这里有一张包含所有资源类型,文件格式,文件描述以及所有XML文件的详细信息的列表。

在项目里,你可以在子目录res/下创建和存储资源文件。Android有一个资源编译工具(aapt),它可以编译在这个 目录下所有的子目录中的资源,这里有个各种资源的列表。你可以从 资源引用 这里看到各种类型的对象,包含其语法以及格式。

路径 资源类型
res/anim/ XML文件被编译进 逐帧动画 或 补间动画 的对象
res/drawable/

.png, .9.png, .jpg files 这些类型的文件被编译进下列这些图表资源列表

为了获得这些资源的类型,使用 Resource.getDrawable(id)

  • 位图文件
  • 9-patches (可改变尺寸的图像)
res/layout/ 可编译成屏幕布局的XML文件 (或者屏幕的一部分). 查看 布局
res/values/

可编译成多种类型资源的文件

注意: 不像其他 res/ 文件夹,它能容纳任何数量的文件,但只是描述其创建而不是资源本身. XML的元素类型可以决定这些资源在R.class里什么位置被替换 .

文件可以被命名为任何名字,文件夹里有一些典型的文件(一般约定文件以定义的元素类型后面部分为文件名)::

  • arrays.xml 定义数组
  • colors.xml 定义 颜色 和 颜色字串数值. 你可以使用Resources.getDrawable() 以及 Resources.getColor(), respectively, 取得这些资源.
  • dimens.xml 定义 尺寸数据 . 使用 Resources.getDimension() 取得这些资源。
  • strings.xml 定义字符串 数值 (使用 Resources.getStringResources.getText() 取得资源,(后者更好一点)getText() 能取到在用户界面上显示的文本框里的文本。
  • styles.xml 定义类型 对象。
res/xml/ 任何XML文件可以进行编译,并能在运行时调用Resources.getXML() 显示XML原文件。
res/raw/ 这里的任何文件都将直接被复制到设备上。编译产品时,这些数据不会被编译,它们被直接加入到程序包里。 为了在程序中使用这些资源,你可以调用Resources.openRawResource() , 参数为ID: R.raw.somefilename.

资源最终会被编译成APK文件,Android创建一个包装类,命名为R,这样你能做你的代码里使用这些资源类。 根据资源路径和文件名的不同,R包含很多子类。