Android attr ?format屬性詳解 (自定義屬性詳解)
下面再對attr的format的類型進行一下說明骚亿。
如下圖:
boolean
boolean表示attr是布爾類型的值蓖柔,取值只能是true或false榴啸。
string
string表示attr是字符串類型。
integer
integer表示attr是整數(shù)類型怜奖,取值只能是整數(shù)矫夷,不能是浮點數(shù)。
float
float表示attr是浮點數(shù)類型放案,取值只能是浮點數(shù)或整數(shù)。
fraction
fraction表示attr是百分?jǐn)?shù)類型矫俺,取值只能以%結(jié)尾吱殉,例如30%、120.5%等厘托。
color
color表示attr是顏色類型友雳,例如#ff0000,也可以使用一個指向Color的資源铅匹,比如@android:color/background_dark押赊,但是不能用0xffff0000這樣的值。
dimension
dimension表示attr是尺寸類型包斑,例如取值16px流礁、16dp,也可以使用一個指向類型的資源罗丰,
reference
reference表示attr的值只能指向某一資源的ID神帅,例如取值@id/textView。
enum
enum表示attr是枚舉類型萌抵,在定義enum類型的attr時找御,可以將attr的format設(shè)置為enum,也可以不用設(shè)置attr的format屬性绍填,但是必須在attr節(jié)點下面添加一個或多個enum節(jié)點萎坷。取值時只能取其中一個枚舉值
flag
flag表示attr是bit位標(biāo)記,flag與enum有相似之處沐兰,定義了flag的attr,在設(shè)置值時蔽挠,可以通過|設(shè)置多個值住闯,而且每個值都對應(yīng)一個bit位瓜浸,這樣通過按位或操作符|可以將多個值合成一個值,我們一般在用flag表示某個字段支持多個特性比原,需要注意的是插佛,要想使用flag類型,不能在attr上設(shè)置format為flag量窘,不要設(shè)置attr的format的屬性雇寇,直接在attr節(jié)點下面添加flag節(jié)點即可。
細(xì)心的童鞋可能已經(jīng)明白了flag與enum的差別蚌铜,flag表示這幾個值可以做或運算锨侯,比如上面的dogFood,你可以疊加使用冬殃,狗狗食物可同時選牛肉囚痴、豬肉等。而狗狗的性別只能有一種审葬。 format 可以選擇多個類型 值 用 ?| 連接即可