前言
在android自定義view的過程中檀头,偶爾會涉及到設(shè)置外部資源的問題。那么今天就來講講自定義view屬性的問題吧贞远。
今天涉及的知識有:
- 創(chuàng)建 attrs.xml文件及其屬性講解
- 在自定義view中調(diào)用及獲取資源
- 在xml中引用自定義控件及設(shè)置屬性
- 需要注意的點(diǎn)蛋褥。
大家可以在“demo大師”上搜索《番外篇2:自定義View屬性全解》下載對應(yīng)demo
先來張效果圖:
一. 創(chuàng)建 attrs.xml文件及其屬性講解
attrs.xml一般位于項(xiàng)目 的 res/values 文件夾下彼宠,若此路徑下沒有attrs.xml文件可很,則需要創(chuàng)建诗力。
創(chuàng)建流程是這樣的:選中 res/values 文件夾 -----> 右鍵 -----> New ----->XML -----> Values XML File ,然后在彈出的輸入框中輸入文件名:attrs我抠,點(diǎn)擊finish即可姜骡。具體操作如下:
生成的 attrs.xml文件中代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
接下來要講的是就是attrs中標(biāo)簽和屬性的知識导坟。
1.1 declare-styleable 標(biāo)簽
一般一個 declare-styleable 標(biāo)簽對應(yīng)具體的一個控件,一個<resources>標(biāo)簽中可以含一個或多個 declare-styleable圈澈,也即意味著不同的控件對應(yīng)的資源設(shè)置都可以放置到一個 attrs.xml文件中。declare-styleable 標(biāo)簽使用類似如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="名稱1">
</declare-styleable>
<declare-styleable name="名稱2">
</declare-styleable>
</resources>
以上代碼表示一個attrs.xml中有兩組資源尘惧。declare-styleable 標(biāo)簽中的 “name="名稱1” 標(biāo)記著這個資源的唯一標(biāo)志康栈,當(dāng)自定義控件要引用具體資源的時候,就要用到 name的值喷橙。這里我給 name設(shè)值為 mytest(name的值自己定義啥么,但要唯一),表示這是一個 名為 “mytest”的一組資源贰逾,具體表示如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="mytest">
</declare-styleable>
</resources>
ok,一組資源的名稱取了悬荣,現(xiàn)在要給這組資源設(shè)置具體的屬性命名。屬性標(biāo)簽用 attr疙剑,如下:
<declare-styleable name="mytest">
<attr name="" format=""/>
</declare-styleable>
attr 標(biāo)簽有兩個屬性氯迂,name 和 format,name表示屬性名稱言缤,由你自己定義嚼蚀,注意最好保持唯一,format 表示屬性類型管挟。format類型種類如下: