Android开发中的R文件

一、R文件

当 Android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源的 ID,如布局文件,资源文件,图片(values下所有文件)的ID等。在写java代码需要用这些资源的时候,你可以使用 R 类,通过子类+资源名或者直接使用资源 ID 来访问资源。

PS:添加资源的命名规则:资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_.] 这些字符,否则R.java文件不会自动更新

R.java文件是活动的Java文件,如MainActivity.java的和资源如strings.xml之间的胶水

二、R.java文件中资源ID的含义

在Android中资源的使用几乎无处不在,layout、string、drawable、raw、style、theme等等都是。这些资源会在编译过程中被打包进APK中(res文件夹)或者被打包成独立的资源APK包(比如framework-res.apk)。但是这些资源都会被赋予独一无二的ID即资源索引来方便系统访问。这些资源索引由Android的工具AAPT(Android Asset Packing Tool)生成的八位十六进制整数型。 

 

中间 02 所在位置值代表资源ID对应的资源的类型,分别是:
02:drawable     03:layout      04:values     05:xml     06:raw    07:color     08:menu

PS:分配resource id的主要逻辑实现是在framework/base/tools/aapt/Resource.cpp 和 ResourceTable.cpp

三、通过R文件来实现资源调用

1、java代码中使用

//获取文字
getResources().getText(R.string.name);//获取string类型的res数据
getResources().getString(R.string.name);

//图片
getDrawable(R.drawable.icon);

//颜色
getResouces().getColor(R.color.red);

//布局
setContentView(R.layout.main);

//控件
findViewById(R.id.txt_name)

上面的方法都是使用context/MainActivity.this来调用,比如context.getString(R.string.name)。

2.XML代码中使用

通过@xxx即可得到,比如这里获取文本和图片:

<TextViewandroid:text="@string/hello_world" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"  
  android:background="@drawable/img_back"/>

参考文章Android的R.java文件Android开发中的R文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值