Android R文件介绍
R.java 文件中默认有attr、drawable、layout、string等色哥静态内部类,每个静态内部类分别对应着一种资源,如layout静态内部类对应着layout中的接界面文件,其中每个静态内部类中的静态常量分别定义为一条资源标识符,如下:
- //下面对应着的是layout目录下的main.xml文件
- public static final int main = 0x7f030000;
- 资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现[a-z0-9_] 这些字符,否则R.java文件不会自动更新,并且eclipse会提示错误
- 当开发者在res/目录中任何一个子目录中添加相应类型的文件之后,ADT会在R.java文件中相应内部类中自动生成一条静态int类型的常量,对添加的文件进行索引
- 如果在layout目录下添加一个新界面,那么在public static final class layout 中也会添加相应的静态int常量
- 相反,我们再res目录下删除任何一个文件,其在R.java文件中对应的记录会被ADT自动删除
- R.java文件除了自动标示资源的索引功能外,如果res目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的apk包中,节省资源
通过R文件来引用所需要的资源:
在 java 程序中应用资源
- 在java程序中应用资源
- 按照java的语法来引用即 R.resource_type.resource_name
- 注意:resource_name 不需要文件的后缀名
- Android系统本身自带了很多资源可以引用,只是需要在前面加上 Android. 以申明来自Android系统,即Android.R.resource_type.resource_name
- 在xml文件中引用资源
- 在xml文件中一般是通过@drawable/icon的方式获取的,其中@代表R.java类,drawable代表的是R.java中的静态内部类drawable,/icon代表静态内部类drawable中的静态属性icon
- 如果访问的是Android系统自带的文件,则要添加Android:,如下:
- 在布局文件中当我们需要为一些组件添加Id属性作为标识@+id/string_name,其中“+”表示在R.java的名为Id的内部类中添加一条常量名为string_name的记录
- android:textColor="@android:color/red"
Android R文件介绍的更多相关文章
- android R文件不能识别?
android R文件引入不了原因可能是: 1.xml有错误,导致R文件生成失败:(修改xml,并clear,然后再重新Bulid一下即可) 2.如果是图片,可能是命名有问题,查看并修改(不要以数字开 ...
- android R 文件生成不了
在android中比较头疼的是R文件生成不了.今天总结一下R文件生成不了的一些原因和解决方法 1. xml文件有错, 如果在res文件中的xml文件有错,android不会自动生成R文件,此时仔细查看 ...
- android R 文件 丢失的处理 如何重新生成
很多时候我们会遇到工程中的R.java文件丢失,必要急,修复很简单. 方法:右击你的工程(项目)——>Android Tools——>Fix Project Properties 即可. ...
- Android R文件的id
如果你用 apktoool 反编译过 apk 就知道,反编译后res/values 下有一个 public.xml 文件,内容如图 这个东西有什么用呢? 先从如何使用资源 ID 开始,在开 ...
- Android R文件相关问题
今天遇到的问题,gen下没有自动生成文件,而大部分java文件中错误是找不到R.java.“R cannot be resolved to a variable” 这就一定有别的原因造成错误, ...
- 关于android R.layout 中找不到已存在的布局文件问题的解决
今天遇到一个很奇怪的问题,打R.layout.,居然不会提示已经写好的布局文件,自己把xml文件名打下去后,居然提示错误. 开始以为是R文件中没有自动生成关于布局文件对应的整型,看了R文件,其实是有生 ...
- Android下HelloWorld项目的R.java文件介绍
R.java文件介绍 HelloWorld工程中的R.java文件 package com.android.hellworld; public final class R { public s ...
- Android资源文件及文件夹介绍
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的 1:assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片, ...
- Android 笔记之 R 文件
Android笔记之R文件 h2{ color: #4abcde; } a{ color: blue; text-decoration: none; } a:hover{ color: red; te ...
随机推荐
- pre-commit 钩子,代码质量检查:在 vue-cli 3.x 版本中,已经使用尤大改写的yorkie,yorkie实际是fork husky,然后做了一些定制化的改动,使得钩子能从package.json的 "gitHooks"属性中读取
pre-commit 钩子,代码质量检查:在 vue-cli 3.x 版本中,已经使用尤大改写的yorkie,yorkie实际是fork husky,然后做了一些定制化的改动,使得钩子能从packag ...
- C# 数据库
连接: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- react的注意点
1.import Form from '../pages/form/view' 与 import Form from '../pages/form/container'的区别: 前者只是引入view. ...
- ado.net调用返回多结果集的存储过程
- Unity Shader Graph(一)初次尝试
软件环境 Unity Version: 2018.1.2f1 边缘发光材质效果 创建工程 打开Unity并创建一个新工程 安装依赖项 Window -> Package Manager打开包管理 ...
- percona-toolkit(pt-online-schema-change)工具包的安装和使用
1.下载和安装percona toolkit的包 #yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/ ...
- 04-模拟String去除空格trim()方法
/** * 模拟String去除左右两边空格 * @param str */ public static String trim(String str) { char[] list = str.toC ...
- systemverilog assertion
1.一般是单独写一个module 里面放assertion, 然后在验证平台顶层和RTL的实例化bind起来 2. |->表示直接进行判断,|=>表示下一拍判断,一般一个断言最好只写一 ...
- Linux的命令技巧
一.使用apt-get installl 方法安装的库或者程序一般的路径如下 1.下载的软件存放位置 /var/cache/apt/archives 2.安装后软件默认位置 /usr ...
- httpput
String doHttpPut(String rpmName, String cookie) throws UnsupportedEncodingException, IOException, Cl ...