Android资源文件中@,?,@+含义和区别.

一,@代表引用资源.

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名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值