1、资源引用语法:
@[package:]type/name :其中package可以省略,默认是本地包即R.java package,type是资源类型,name是名称;android应用主要有以下资源类型:
R.drawable--drawable
R.id--id
R.layout--layout
R.string--string
R.attr--attr
R.plural--plurals
R.array--string-array
你可以通过android.R.java来引用android的系统资源
在引用id资源时,你可以通过一个'+'来让系统帮你定义一个id资源,如@+id/text;
2、资源类型
编译成二进制类型和拷贝到设备类型
一般/res/values,/res/layout,/res/xml等目录下的都会通过aapt编译成二进制,而/res/raw目录下的是拷贝到设备上;
/res/xml下的文件,可以通过android系统的xml readers读取;
/res/raw下的文件虽然没有编译成二进制,但因为是资源,android会在R.java中产生一个id,你可以通过这个id来访问该资源,如R.raw.some-filename-minus-extension;
在/res目录下有如下重要的子目录:
anim:编译好的动画文件
drawable:位图
layout:UI和视图定义
values:数组,颜色,尺寸,字符串和样式
xml:编译好的xml文件
raw:没有编译的原始文件
resource type | location | description |
Colors | /res/values/any-file | 通过R.color.*来引用,xml 节点是/resources/color |
Strings | /res/values/any-file | 通过R.string.*来引用,xml节点是/resources/string |
String arrays | /res/values/any-file | 通过R.array.*来引用,xml节点是/resources/string-array |
Pluras | /res/values/any-file | 通过R.plural.*来引用,xml节点是/resources/plurals |
Dimensions | /res/values/any-file | 通过R.dimen.*来引用,xml节点是/resources/dimen |
Images | /res/drawable/multiple-files | 通过R.drawable.*来引用 |
Color drawables | /res/values/any-file or /res/drawable/multiple-files | 矩形或圆角矩形颜色背景,通过R.drawable.*来引用;矩形的xml节点是/resources/drawable,圆角矩形的的根xml节点是<shape> |
Arbitrary xml file | /res/xml/*.xml | android可以把任意的xml文件当作资源,这些文件通过aapt编译器来编译,通过R.xml.*来引用;通过xml reader api来访问xml文件 |
Arbitrary raw file | /res/raw/*.* | 这些资源不会编译但会产生唯一资源id,并且可以通过R.raw.*来引用;通过基于流的api来访问 |
Arbitrary raw assets | /asseats/*.*/*.* | android允许任意的目录和文件放在/assets目录下,它们不是资源文件而是原始文件,不会产生资源id;你可以通过以/assets开始的路径来访问相关文件资源 |