android中的资源、属性引用方式-创新互联

android系统中引用资源有几种方式,常用的有“@”“@+”引用具体资源的方式。也有“?”"?attr"等引用主题属性的方式,方式多了容易乱,为保持思路清晰,总结之。

创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序制作,10多年建站对成都酒店设计等多个领域,拥有多年的网站设计经验。

引用格式分解:

android:background="@color/light_red"   引用colors.xml中定义的颜色资源

android:background="?attr/colorPrimary"  引用主题属性colorPrimary

android命名空间
background属性名称
@表明引用的是具体资源
?表明引用的是系统属性
color资源类型
attr属性的类型
light_redcolors.xml中定义的颜色资源名称
colorPrimary属性名称

引用具体资源:

1、引用自定义资源

格式:@[package:]type/name

例如:android:text="@string/app_name"

=====================================================================

2、引用系统资源

格式:@android:type/name

例如:android:textColor="@android:color/light_blue"

@android:style/Theme.Holo.Light //引用系统主题

3、“@+”表示新建并引用资源id

例如:android:id="@+id/bt_title"

继承关系指定:(这里可以不需要使用“@”)

引用属性写法:

引用自定义属性:?attr/colorPrimary                简写:?colorPrimary

引用系统属性:?android:attr/colorPrimary    简写:?android:colorPrimary

其中,自定义属性会复写系统属性

引用属性时,不需要指定类型(?name == ?attr/name)

当colors.xml中有定义colorPrimary属性时,

鼠标在该属性上时“?colorPrimary”和“?attr/colorPrimary”均显示:

?attr/colorPrimary => @color/colorPrimary =>#3F51B5

所以:“?colorPrimary”只是“?attr/colorPrimary”的简写

鼠标在该属性上时“?android:colorPrimary”和“?android:attr/colorPrimary”均显示:

?android:attr/colorPrimary => ?attr/colorPrimary=> @color/colorPrimary => #3F51B5

所以:“?android:colorPrimary”只是“?android:attr/colorPrimary”的简写

当colors.xml中没定义colorPrimary属性时,

?attr/colorPrimary => @color/primary_material_light=> @color/material_grey_100 => #fff5f5f5

这是AppCompat包中定义的属性值

引用资源时,一定要指定类型(@name != @color/name)

@name会引用失败

因为不同类型的资源可以有相同的名称,如:R.color.white、R.style.white。

而主题属性不可以,并且在attrs.xml中就约束了其类型,所以属性引用可以省略,而资源引用不可以

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:android中的资源、属性引用方式-创新互联
网页URL:http://csdahua.cn/article/eijic.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流