首先介绍一下andorid的资源文件,认识这些资源文件对以后开发是必要的。

一、资源文件的管理

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

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

android 资源文件地址 安卓资源文件_java

在res目录下的都是资源文件,用的多的是layout、values、drawable等。

资源目录的层级结构如下表所示,表中显示了Android SDK支持的资源类型以及它们在工程中的存储方式。 资源类型 所需的目录 文件名 适用的关键XML元素

字符串 /res/values/ strings.xml(推荐)

字符串数组 /res/values/ arrays.xml(推荐)

颜色值 /res/values/ colors.xml(推荐)

尺寸 /res/values/ dimens.xml(推荐)

简单Drawable图形 /res/values/ drawables.xml(推荐)

位图图像 /res/drawable/ 例:.png,.jpg,red_oval.xml等等 支持的图形文件或XML文件定义的

Drawable图形

动画序列(补间) /res/anim/ 例:fancy_anim.xml等等 、、、等

菜单文件 /res/menu/ 例:my_menu.xml

XML文件 /res/xml/ 例:some.xml 由开发人员定义

原始文件 /res/raw/ 例:xx.mp3,yy.txt等等

布局文件 /res/layout/ 例:main.xml等

样式和主题 /res/values/ 例:themes.xml

AAPT贯穿所有在/res目录下正确格式化的文件,并且在目录/gen中生成类文件R.java,以访问所有变量。

R.java这个东东很有用,界面文件(即layout下面的定义的界面)和实现代码就是通过R.java联系的。

二、资源文件的创建

开发人员可以通过手工编写资源的XML文件,使用AAPT编译它们并生成R.java文件来定义简单的资源,推荐使用ADT插件。

创建完工程后,在Eclipse中定位至/res/values/strings.xml文件,双击可以编辑它。我们可以使用Resources标签下的Add按钮添加几个资源。也可以切换到源文件编辑模式。定义的如下:

1:<?xml version="1.0" encoding="utf-8"?>2:3: Hello World, ActivityIntent!4: ActivityIntent5: The Activity and The Intent test!6: 测试7: 另一个Activity8: 电话按钮9:10://个人认为,统一界面风格的时候可以用到,比如,我们把按钮btnOK的全部显示为“确定”,所有的按钮的宽度和高度设置好,可以定义这样一些的节点11:确定12:100px13:25px

这样子,我们在定义界面的时候,可以这样子写:

1:6:

保存Strings.xml文件。Eclipse插件讲将自动在你的工程中生成R.java文件,并含有适当的资源ID,以供编译之后使用程序访问这些资源。如果你定位到/gen/目录下的R.java文件,你可以看到:(所有的资源文件,都在R.java里面有对应)

1: public final class R {2: public static final class attr {3: }4: public static final class color {5: public static final int black=0x7f040001;6: public static final int red=0x7f040000;7: }8: public static final class drawable {9: public static final int androidmarker=0x7f020000;10: public static final int blue=0x7f020006;11: public static final int darkgray=0x7f020004;12: public static final int exammislogo=0x7f020001;13: public static final int icon=0x7f020002;14: public static final int logo2=0x7f020003;15: public static final int white=0x7f020005;16: }17: public static final class id {18: public static final int btnClose=0x7f06000b;19: public static final int btnOK=0x7f06000a;20: public static final int btnOKOK=0x7f06000c;21: public static final int edtName=0x7f060005;22: public static final int edtPwd=0x7f060008;23: public static final int imageViewLogo=0x7f060000;24: public static final int linearLayout1=0x7f060001;25: public static final int tableLayout1=0x7f060002;26: public static final int tableRow1=0x7f060003;27: public static final int tableRow2=0x7f060006;28: public static final int tableRow3=0x7f060009;29: public static final int textView1=0x7f060004;30: public static final int textView2=0x7f060007;31: }32: public static final class layout {33: public static final int loginsystem=0x7f030000;34: public static final int main=0x7f030001;35: public static final int myactivity=0x7f030002;36: }37: public static final class string {38: public static final int EditTextHeigh=0x7f050007;39: public static final int EditTextWith=0x7f050006;40: public static final int app_name=0x7f050001;41: public static final int btnClose=0x7f050004;42: public static final int btnDelete=0x7f050005;43: public static final int btnHeigh=0x7f050009;44: public static final int btnOK=0x7f050002;45: public static final int btnSave=0x7f050003;46: public static final int btnWidth=0x7f050008;47: public static final int hello=0x7f050000;48: }49:}

三、资源的读取

当我们创建好资源并保存后,我们变可以在程序用通过资源的ID来使用资源了。

比如说,我们获取资源ID为hello的内容:

1:String str = getResources().getString(R.string.hello);