天天看点

Android资源管理——资源文件的创建、读取和管理

一、资源文件的管理

所有的Android应用程序都由两部分组成:功能代码和资源。功能代码决定应用程序的行为,它包括让应用程序得以运行的所有算法。资源包括文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。

如果我们使用ADT开发的话,它为我们在后台自动调用AAPT编译资源,我们就可以省了很多事。不然的话,我们得使用AAPT自己去编译资源了。本文使用的是eclipse + ADT开发环境。资源目录截图图下图所示。

Android资源管理——资源文件的创建、读取和管理

资源目录的层级结构如下表所示,表中显示了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,以访问所有变量。

Android资源管理——资源文件的创建、读取和管理

二、资源文件的创建

开发人员可以通过手工编写资源的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博客 同步发布)