Android自定义属性
上一篇講解了Android自定義View,這篇來講解一下Android自定義屬性的使用,讓你get新技能.希望我的分享能幫助到大家.
做Android布局是件很享受的事,這得益于他良好的xml方式。使用xml可以快速有效的為軟件定義界面。可是有時候我們總感覺官方定義的一些基本組件不夠用,自定義組件就不可避免了。那么如何才能做到像官方提供的那些組件一樣用xml來定義他的屬性呢?現(xiàn)在我們就來討論一下他的用法。
1、在res/values文件下定義一個attrs.xml文件,代碼如下:
2、在布局xml中如下使用該屬性:
3、在自定義組件中,可以如下獲得xml中定義的值:
4. 首先來看看attrs.xml文件。
該文件是定義屬性名和格式的地方,需要用<declare-styleable name="numText"></declare-styleable>包圍所有屬性。其中name為該屬性集的名字,主要用途是標(biāo)識該屬性集。那在什么地方會用到呢?主要是在第三步。看到?jīng)]?在獲取某屬性標(biāo)識時,用到"R.styleable.numText_numLine",很顯然,他在每個屬性前面都加了"numText_"。
5.在來看看各種屬性都有些什么類型吧:string , integer , dimension , reference , color , enum.
前面幾種的聲明方式都是一致的,例如:<attr name="numLine" format="integer"/>。?
只有enum是不同的,用法舉例:
如果該屬性可同時傳兩種不同的屬性,則可以用“|”分割開即可。
6.讓我們再來看看布局xml中需要注意的事項(xiàng)。首先得聲明一下:xmlns:nl=http://schemas.android.com/apk/res/com.example.myview
注意,“nl”可以換成其他的任何名字,后面的url地址必須最后一部分必須用上自定義組件的包名。自定義屬性了,在屬性名前加上“nl”即可。
7.最后來看看java代碼中的注意事項(xiàng)。在自定義組件的構(gòu)造函數(shù)中,用
來獲得對屬性集的引用,然后就可以用“a”的各種方法來獲取相應(yīng)的屬性值了。這里需要注意的是,如果使用的方法和獲取值的類型不對的話,則會返回默認(rèn)值。因此,如果一個屬性是帶兩個及以上不用類型的屬性,需要做多次判斷,知道讀取完畢后才能判斷應(yīng)該賦予何值。當(dāng)然,在取完值的時候別忘了回收資源哦!
效果圖跟我上一篇自定義View的一樣,我是在那個基礎(chǔ)上進(jìn)行修改的
我參考的博客鏈接:http://www.cnblogs.com/ufocdy/archive/2011/05/27/2060221.html
點(diǎn)擊下載源碼
總結(jié)
以上是生活随笔為你收集整理的Android自定义属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux内核自旋锁API
- 下一篇: Bitlocker企业安全加密管理系列-