概述
首先了解什么是R文件
当 Android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源。包括布局文件layout,图片文件drawable等。
具体的内容如下所示:
public final class R{
//全是以 publi static final 开头的内部类
...
public static final class layout{...}
public static final class id{...}
public static final class drawable{...}
public static final class mipmap{...}
public static final class color{...}
public static final class string{...}
public static final class style{...}
...
}
我们在这里并不需要知道更多的东西,只需要知道Android会自动生成R文件(R.java)是一个java类,其中包括drawable、layout、string等各色静态内部类(每个静态内部类分别对应着一种资源,如layout静态内部类对应着layout中的接界面文件)。而每个静态内部类中的静态常量分别定义为一条资源标识符。
如下:内部类 id 里面的内容(下面省略了部分代码):
//id内部类中是button
public static final class id{
//全是以 public static final int 开头的属性
...
public static final int button_1="0x7f070022";
public static final int button_2="0x7f070023";
public static final int button_3="0x7f070024";
...
}
好了,总结一下就是:Android自动运行生成R文件,该文件中包含各种静态内部类(res资源:如layout、string、drawable等),内部类中包含静态常量(资源标识符:如layout静态类中包含first.xml,second.xml,那么资源标识符就是first、second)。
如何使用R文件
这又是在Android中分成两种情况
1、 在java文件中使用R文件
1.使用的res资源下,通过R.子类.资源名(即资源标识符) R.type.name
//字符
R.string.name1
R.string.name2
//图片
R.drawable.icon1
R.drawable.icon2
//布局
R.layout.first_layout
R.layout.second_layout
//....
2.使用android自带的资源下, android.R.type.name
只是需要在前面加上 android. 以申明来自Android系统
2、在XML中使用R文件
1.在res资源下,@[package:]type/name(使用我们自己包下的资源可以省略 package)
@drawable/icon
/*
其中@代表R.java类
drawable代表的是R.java中的静态内部类drawable
icon代表静态内部类drawable中的静态属性icon
而该属性可以指向 res 目录下的“drawable-*dpi”中的 icon.png 图标
*/
2.在android内置资源下,则要添上包名“android:”
android:textColor=”@android:color/red”
最后说明一下“@+id/string_name”表达式
顺便说一下,在布局文件当中我们需要为一些组件添加 Id 属性作为标示,可以使
用如下的表达式“@+id/string_name”
其中“+”表示在 R.java 的名为 id 的内部类中添加一条记录。如”@+id/button”的含义是在 R.java 文件中的 id 这个静态内部类添加一条常量名为 button,该常量就是该资源的标识符。如果 id 这个静态内部类不存在,则会先生成它。
通过该方式生成的资源标识符,仍然可以以“@id/string_name”的方式引用。
最后
以上就是冷静墨镜为你收集整理的Android之R文件首先了解什么是R文件如何使用R文件的全部内容,希望文章能够帮你解决Android之R文件首先了解什么是R文件如何使用R文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复