资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件。在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标示,其内容如下所示。

Java代码:
package eoe.demo; 
// 资源类 
public final class R { 
// 数组 
public static final class array { 
public static final int faultRecords=0x7f060000; 

// 属性 
public static final class attr { } 
// 颜色 
public static final class color { 
public static final int black=0x7f040001; 
public static final int red=0x7f040000; 

// 图片 
public static final class drawable { 
public static final int icon=0x7f020001; 
public static final int logo2=0x7f020002; 

// ID标示 
public static final class id { 
public static final int licenseEditText=0x7f070022; 
public static final int lngEditText=0x7f070001; 

// 布局 
public static final class layout { 
public static final int custom_dialog=0x7f030000; 
public static final int custom_dialog1=0x7f030001; 

// 字符串 
public static final class string { 
public static final int app_name=0x7f050001; 
public static final int hello=0x7f050000; 
}

}

       1.在代码中使用资源文件

在代码中访问资源文件,我们是通过使用R资源类中定义的资源文件类型和资源文件名称来访问的。具体格式为:R.资源文件类型.资源文件名称。例如:

Java代码:
// 设置Activity显示的布局视图 
setContentView(R.layout.login_system); 
// 获得Button实例 
cancelBtn = (Button)findViewById(R.id.cancelButton); 
loginBtn = (Button)findViewById(R.id.loginButton); 
// 获得TextView实例 
userEditText = (EditText)findViewById(R.id.userEditText); 
pwdEditText = (EditText)findViewById(R.id.pwdEditText);

}

另外,除了访问用户自己定义的资源文件,还可以访问系统中的资源文件。大部分的资源文件被定义在android包下的R类中。访问系统中的资源文件格式为:android.R.资源文件类型.资源文件名称。例如:

Java代码:
int i ; 
// 动画 
i = android.R.anim.fade_in; 
// 数组 
i = android.R.array.emailAddressTypes; 
// 颜色 
i = android.R.color.darker_gray; 
// 尺寸 
i = android.R.dimen.app_icon_size; 
// 可绘制图片 
i = android.R.drawable.title_bar; 
// 字符串 
i = android.R.string.cancel;

       2.在其他资源文件中引用资源文件

我们经常会在布局文件的元素属性中引用其他资源文件,经常用到的有字符串、图片、颜色等资源。例如,下列布局文件中的TextView组件引用了一个字符串来表示文本内容,引用了一个颜色来表示文本颜色,引用了一个尺寸来表示文本尺寸。

Java代码:
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/styled_welcome_message" 
android:textColor="@color/opaque_red" 
android:textSize="@dimen/sixteen_sp" />

R类的更多相关文章

  1. Android 自动生成的R类

    资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件.在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使 ...

  2. Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化

    导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...

  3. 关于Android项目中,突然就R类找不到已存在的资源文件的解决方法

    项目代码早上打开正常,下午开的时候突然提示R类找不到已存在的布局文件,于是试了各种方法,CLEAN啊,重启啊,均无效,然后去网上搜了下,遇到这个问题的人还不少. 看到其中有这么一条解决方法,删除导入的 ...

  4. T100——r类 凭证报表 打印

    报表开发流程:1.建立入口程序 如r类的作业:cxmr500步骤: azzi900中建立程序代号 azzi910中建立作业代号 设计器--规格--签出 设计器--程序--签出 adzp168(r.a) ...

  5. T100——查询 r类 报表开发流程

    报表开发流程:1.建立入口程序 如r类的作业:cxmr500步骤: azzi900中建立程序代号 azzi910中建立作业代号 设计器--规格--签出 设计器--程序--签出 adzp168(r.a) ...

  6. android 防止R被混淆,R类反射混淆,找不到资源ID

    在Proguard.cfg中添加 -keep class **.R$* { *;   }

  7. 解决android中Layout文件下的xml文件配好后,R类中不能自动生成相应代码

    不能更新的原因: 1.在xml文件中代码错误或者格式错误 2.eclipse 编译器是老版本 3.布局文件的文件名有大写字母 4.含有相同文件名.格式的xml文件 解决方法: 1.找到出错的xml文件 ...

  8. 为什么android的R类要定义成16进制

    联想到c语言中的宏定义:我想是一个原因 如: #define SDL_INIT_TIMER 0x00000001 #define SDL_INIT_AUDIO 0x00000010 #define S ...

  9. Android应用程序“.R文件”消失怎么办

    其实Android自己维护这一个 public final class R类主要是跟新资源文件,这个R.java无需我们自己去修改,如果你不了解千万不要去修改它,它定义的每个资源值都是唯一的,不会和系 ...

随机推荐

  1. centos上git搭建

    1 git的安装需要一些包: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-Ex ...

  2. 制作自动化系统安装U盘

    1.挂载CentOS6.6镜像 [root@test88 ~]# mkdir /application/tools -p [root@test88 ~]# cd /application/tools/ ...

  3. 庆祝团队合著的《自主实现SDN虚拟网络与企业私有云》终于得以出版 --- 本人负责分布式存储部分的编写

    https://item.jd.com/12154254.html 京东购买地址

  4. Django-manage.py

    一.manage.py命令选项 manage.py是每个Django项目中自动生成的一个用于管理项目的脚本文件,需要通过python命令执行.manage.py接受的是Django提供的内置命令. 内 ...

  5. django rest_framework比较完整的自定义实现样例

    里面有自定义的更新策略, 序列化时,考虑nest及显示. 很有参考意义. 然后,前端,可以考虑用angular.js或vue.js实现. 每次以token进行认证. url.py router = D ...

  6. linux的文件隐藏属性 chattr lsattr

    <鸟哥的Linux私房菜 基础学习篇(第三版)> 7.4.2 读书笔记 显然,这里要说的并不是rwx那9个权限,而是要聊chattr和lsattr这两个命令.这两个命令在只能在Ext2/E ...

  7. 六 Python基础 字符串和编码

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  8. mysql 笔记(一)

    mysql 笔记 预留 mysql> use mysql; mysql> grant all privileges  on *.* to root@'%' identified by &q ...

  9. [hdu3685]Rotational Painting 凸包 重心

    大致题意: 给出一个多边形,问你有多少种放法可以使得多边形稳定得立在平面上. 先对多边形求重心,在求凸包,枚举凸包的边,如果重心没有在边的范围内,则不行 判断是否在范围内可用点积来判断 #includ ...

  10. BNUOJ 52509 Borrow Classroom

    最近公共祖先. 如果$A$到$1$的时间小于$B$到$C$再到$1$的时间,那么一定可以拦截. 如果上述时间相等,需要在到达$1$之前,两者相遇才可以拦截. #include<bits/stdc ...