跟我学Android应用开发 之 Android中资源文件的使用

    在很多地方都需要用到资源文件,做C开发的有可能将一些字符串注册为资源,J2ME也有类似的功能,其目的都是为了将代码与界面的显示相分离开来,也就是将表现层与控制层相剥离,极大的提高了程序的灵活性。

  Android也提供了这样的功能,这样的话你就可以根据目前设备不同的放置方向,横着的还是竖着的,来动态调整设备的界面布局,可以根据不同的语言环境调整语言显示,等等。本篇文章将会先讲解Android资源的基础知识,以后的博文中会给出各种资源使用的样例。


android资源位于工程的res/目录下,分为许多种类:

一些比较重要的资源类型如下:

res/anim: 动画资源

res/color: 颜色资源

res/drawable:  一些位图文件资源

res/values: 里面包含一些常用的常量,比如字符串资源等

res/menu: 菜单资源

res/layout: 布局文件资源

res/raw: 原生文件,会被直接复制到发布包中。如果想要打开这个文件夹下面的文件需要使用Resources.openRawResources()方法返回的InputStream对象,进行读取

res/xml: 一些原生xml文件

还有更多类型的资源文件这里就不再一一列出,后面遇到我们会讲解。但是需要注意的一点是不要直接接某一个资源文件放在res/根目录下,这样的话会导致编译不过。

如何使用在res目录下定义的这些资源文件呢,这里就需要用到android系统自动生成的一个类:R类,coder们可以使用这个类来获取

自己定义的资源,这个类位于工程的gen/目录下,如下:

跟我学Android应用开发 之 Android中资源文件的使用_第1张图片

R类下根据不同的资源类型自动生成了不同的资源索引(resource IDs):

public final class R {
    public static final class attr {
    }
    public static final class color {
        public static final int blue=0x7f040000;
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int change=0x7f060000;
        public static final int et01=0x7f060001;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f050001;
        public static final int hello=0x7f050000;
    }
}

在程序代码中使用的方式为:R.xx.yy,xx是你的资源的类型(对应的在上述的R类中的内部类名),yy就是你的资源的id

在别的资源中使用另外一个资源的格式为@[包名:]类型名/资源ID,其中包名是可选的,在同一个包下引用的使用可以将其省略。


你可能感兴趣的:(android,String,layout,Class,语言,j2me)