一,@代表引用资源.
1、引用自定义资源:比如说定义text 格式为“@string/***”
2、引用系统资源:比如说设置文本颜色,就是"@android:color/#ffffff"
其实也就是引用系统资源是引用自定义资源的一个子类.
二.@*代表引用系统的非public资源.
系统资源定义分为public和非public
public 的声明在SDK的文件夹里面,路径是platfroms/android/data/res/values/public.xml
@*android:type/name:可以调用系统定义的所有资源
@android:type/name:只能够调用public属性的资源
需要注意的是:没在public.xml中声明的资源是google不推荐使用的
三.?代表引用主题属性.
当你使用这个标记,你所提供的资源名必须能够在主属性中找到,因为资源工具认为这个资源属性是被期望得到的,不需要明确的指出它的类型(也就是不需要写全在哪个文件中).
主题属性可以在SDK的 values 找到attrs.xml文件
Android系统也为Theme 定义了很多属性
每个主题属性名称 都对应SDK/values目录下的themes.xml文件中,当用到主题属性的时候,可以直接在?后面加上属性名.
四.@+代表在创建或引用资源
+表示在R.java中名type的内部类中加一条记录.
如@+id/button---就是在R.java文件中的id这个静态内部类添加一条常量button,该常量就是该资源的标识符.
@+id/资源ID名---新建一个资源ID
@id/资源ID名---应用现有已定的资源的ID,包括系统ID
@android:id/资源ID名---引用系统ID,同@id/资源ID名