一、资源文件的管理
所有的Android应用程序都由两部分组成:功能代码和资源。功能代码决定应用程序的行为,它包括让应用程序得以运行的所有算法。资源包括文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。
如果我们使用ADT开发的话,它为我们在后台自动调用AAPT编译资源,我们就可以省了很多事。不然的话,我们得使用AAPT自己去编译资源了。本文使用的是eclipse + ADT开发环境。资源目录截图图下图所示。
资源目录的层级结构如下表所示,表中显示了Android SDK支持的资源类型以及它们在工程中的存储方式。
资源类型 | 所需的目录 | 文件名 | 适用的关键XML元素 |
字符串 | /res/values/ | strings.xml(推荐) | <string> |
字符串数组 | /res/values/ | arrays.xml(推荐) | <string-array> |
颜色值 | /res/values/ | colors.xml(推荐) | <color> |
尺寸 | /res/values/ | dimens.xml(推荐) | <dimen> |
简单Drawable图形 | /res/values/ | drawables.xml(推荐) | <drawable> |
位图图像 | /res/drawable/ | 例:.png,.jpg,red_oval.xml等等 | 支持的图形文件或XML文件定义的 Drawable图形 |
动画序列(补间) | /res/anim/ | 例:fancy_anim.xml等等 | <set>、<alpha>、<scale>、<rotate>等 |
菜单文件 | /res/menu/ | 例:my_menu.xml | <menu> |
XML文件 | /res/xml/ | 例:some.xml | 由开发人员定义 |
原始文件 | /res/raw/ | 例:xx.mp3,yy.txt等等 | |
布局文件 | /res/layout/ | 例:main.xml等 | |
样式和主题 | /res/values/ | 例:themes.xml | <style> |
AAPT贯穿所有在/res目录下正确格式化的文件,并且在目录/gen中生成类文件R.java,以访问所有变量。
二、资源文件的创建
开发人员可以通过手工编写资源的XML文件,使用AAPT编译它们并生成R.java文件来定义简单的资源,推荐使用ADT插件。
创建完工程后,在Eclipse中定位至/res/values/strings.xml文件,双击可以编辑它。我们可以使用Resources标签下的Add按钮添加几个资源。也可以切换到源文件编辑模式。定义的如下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, ActivityIntent!</string>
<string name="app_name">ActivityIntent</string>
<string name="prompt">The Activity and The Intent test!</string>
<string name="myButton">测试</string>
<string name="other">另一个Activity</string>
<string name="dialBtn">电话按钮</string>
</resources>
保存Strings.xml文件。Eclipse插件讲将自动在你的工程中生成R.java文件,并含有适当的资源ID,以供编译之后使用程序访问这些资源。如果你定位到/gen/目录下的R.java文件,你可以看到:
public static final class string {
public static final int app_name=0x7f040001;
public static final int dialBtn=0x7f040005;
public static final int hello=0x7f040000;
public static final int myButton=0x7f040003;
public static final int other=0x7f040004;
public static final int prompt=0x7f040002;
}
三、资源的读取
当我们创建好资源并保存后,我们变可以在程序用通过资源的ID来使用资源了。
比如说,我们获取资源ID为hello的内容:
String str = getResources().getString(R.string.hello);
至于Android各个具体的资源类型的创建和使用,我们将在后续的文章中陆续介绍
(本文由“ 萝卜根 ”编辑撰写,转载请注名来源)
(本文在“ 萝卜根 ”和 CSDN博客 同步发布)