资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件。在我们编译一个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. opencv配置过程 (cmake,vs2013,qt 5.4)

    平台及软件: Windows 7 X86 Visual Studio 2013 OpenCV3.0.0 Cmake3.3 1.下载Windows下的安装文件OpenCV-3.0.0.exe,解压,选择 ...

  2. linux和windows下TIME_WAIT过多的解决办法

    http://www.51testing.com/html/48/202848-249774.html linux和windows下TIME_WAIT过多的解决办法 http://m.sohu.com ...

  3. ifconfig与内核通信 ifreq 结构体分析和使用

    结构原型: /* * Interface request structure used for socket * ioctl's.  All interface ioctl's must have p ...

  4. oracle创建计划任务

    特别提示: oracle是执行完任务,才按照interval去计算下次执行时间!!! 为精确每个5分钟执行一个任务,必须自己计算时间. 如:trunc_minute(sysdate)+/ create ...

  5. centos7 修改时区

    Linux 系统(我特指发行版, 没说内核) 下大部分软件的风格就是不会仔细去考虑向后 的兼容性, 比如你上个版本能用这种程序配置, 没准到了下一个版本, 该程序已经不见了. 比如 sysvinit ...

  6. elementUI 学习入门之 radio 单选框

    Radio 单选框 基础用法 选项默认可见,选项不宜过多,选项过多建议使用 select 选择器 使用 Radio 组件,需要设置 v-model 绑定变量,选中意味着变量的值为相应 Radio  l ...

  7. 转:xxe attack学习

    小结 1.http包发送类型:content-type:text/xml2.xxe漏洞非常危险, 因为此漏洞会造成服务器上敏感数据的泄露,和潜在的服务器拒绝服务攻击.要去校验DTD(document ...

  8. CentOS使用

    centos7编译安装git最新版 CentOS下 pycharm开发环境搭建之无穷无尽的问题 CentOS 7入门操作基础教程 centos中文站 CentOS7 常用命令集合 centos中有vi ...

  9. Good Bye 2017 部分题解

    D. New Year and Arbitrary Arrangement 分析 \(dp[i][j]\) 表示已有 \(i\) 个 \(a\) 和 \(j\) 个 \(ab\) 的情况下继续构造能得 ...

  10. 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘

    如果你是一个生活在2003年的程序员,却不了解字符.字符集.编码和Unicode这些基础知识.那你可要小心了,要是被我抓到你,我会让你在潜水艇里剥六个月洋葱来惩罚你. 这个邪恶的恐吓是Joel Spo ...