android中的資源、屬性引用方式-創(chuàng)新互聯(lián)

android系統(tǒng)中引用資源有幾種方式,常用的有“@”“@+”引用具體資源的方式。也有“?”"?attr"等引用主題屬性的方式,方式多了容易亂,為保持思路清晰,總結(jié)之。

創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),小程序制作,10多年建站對(duì)成都酒店設(shè)計(jì)等多個(gè)領(lǐng)域,擁有多年的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn)。

引用格式分解:

android:background="@color/light_red"   引用colors.xml中定義的顏色資源

android:background="?attr/colorPrimary"  引用主題屬性colorPrimary

android命名空間
background屬性名稱
@表明引用的是具體資源
?表明引用的是系統(tǒng)屬性
color資源類型
attr屬性的類型
light_redcolors.xml中定義的顏色資源名稱
colorPrimary屬性名稱

引用具體資源:

1、引用自定義資源

格式:@[package:]type/name

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

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

2、引用系統(tǒng)資源

格式:@android:type/name

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

@android:style/Theme.Holo.Light //引用系統(tǒng)主題

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

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

繼承關(guān)系指定:(這里可以不需要使用“@”)

<style name="AppTheme" parent="android:Theme.Holo.Light" />

同上<style name="AppTheme" parent="@android:style/Theme.Holo.Light">

<style name="AppTheme" parent="Theme.AppCompat.Light" />

同上<style name="AppTheme" parent="@style/Theme.AppCompat.Light" />

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

引用主題屬性:

5、“?”表示引用主題屬性

引用當(dāng)前主題中定義的屬性。“@”表示引用具體的資源,而“?”表示當(dāng)前theme中定義的屬性,該屬性指定了具體的資源值,實(shí)現(xiàn)了根據(jù)使用的不同theme使用不同的資源的功能。

例如:background="?colorPrimary"。在使用theme_white和theme_black時(shí)background的值分別是white和black

<style name="theme_white"parent="android:Theme.Holo.Light">

    <itemname="android:colorPrimary">@android:color/white</item>

</style>

<style name="theme_black"parent="android:Theme.Holo.Light">

    <itemname="android:colorPrimary">@android:color/black</item>

</style>

引用屬性寫法:

引用自定義屬性:?attr/colorPrimary                簡(jiǎn)寫:?colorPrimary

引用系統(tǒng)屬性:?android:attr/colorPrimary    簡(jiǎn)寫:?android:colorPrimary

其中,自定義屬性會(huì)復(fù)寫系統(tǒng)屬性

引用屬性時(shí),不需要指定類型(?name == ?attr/name)

當(dāng)colors.xml中有定義colorPrimary屬性時(shí),

鼠標(biāo)在該屬性上時(shí)“?colorPrimary”和“?attr/colorPrimary”均顯示:

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

所以:“?colorPrimary”只是“?attr/colorPrimary”的簡(jiǎn)寫

鼠標(biāo)在該屬性上時(shí)“?android:colorPrimary”和“?android:attr/colorPrimary”均顯示:

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

所以:“?android:colorPrimary”只是“?android:attr/colorPrimary”的簡(jiǎn)寫

當(dāng)colors.xml中沒定義colorPrimary屬性時(shí),

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

這是AppCompat包中定義的屬性值

引用資源時(shí),一定要指定類型(@name != @color/name)

@name會(huì)引用失敗

因?yàn)椴煌愋偷馁Y源可以有相同的名稱,如:R.color.white、R.style.white。

而主題屬性不可以,并且在attrs.xml中就約束了其類型,所以屬性引用可以省略,而資源引用不可以

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:android中的資源、屬性引用方式-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article2/eijic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站品牌網(wǎng)站設(shè)計(jì)、微信小程序、Google、App設(shè)計(jì)建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)