Android资源管理(认识android的资源文件)

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

一、资源文件的管理

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

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

 

1

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

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

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:  <resources>
   3:   <string name="hello">Hello World, ActivityIntent!</string>
   4:   <string name="app_name">ActivityIntent</string>
   5:   <string name="prompt">The Activity and The Intent test!</string>
   6:   <string name="myButton">测试</string>
   7:   <string name="other">另一个Activity</string>
   8:   <string name="dialBtn">电话按钮</string>
   9:  </resources>
  10:  //个人认为,统一界面风格的时候可以用到,比如,我们把按钮btnOK的全部显示为“确定”,所有的按钮的宽度和高度设置好,可以定义这样一些的节点
  11:  <string name="btnOK">确定</string>
  12:  <string name="btnWidht">100px</string>
  13:  <string name="btnHeigh">25px</string>

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

   1:  <Button android:text="@string/btnOK" 
   2:           android:id="@+id/btnOK" //(注意这里的@+id/btnok,在R.java中有对应的ID,以后编写代码文件的时候,需要用到。)
   3:           android:layout_width="@string/btnWidth" 
   4:           android:layout_height="@string/btnHeigh"
   5:           android:gravity="center"  >
   6:  </Button>

保存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);

转载于:https://www.cnblogs.com/chenamo5776/archive/2011/11/14/2248284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值