自定義屬性主要分為三個步驟:
1:在values檔案夾中新建一個xml檔案用于管理自己的定義的屬性,也可以直接在已有的styles.xml檔案中添加,我是新建的檔案夾(background_color),

在檔案夾中的<resources><resources>的中間添加<declare-styleable><declare-styleable>,<declare-styleable><declare-styleable>表示在添加在這里面的屬性是屬于
自定義的,添加一個屬性是以attr開頭,如
//圓環
<attr name="Color" format="color|reference"/>,其中name表示你這個屬性的名字,由自己來取,
format表示你這個屬性的是什么樣的型別,
//字體
<attr name="android:textColor"/>這個屬性表示系統本身也是有這個屬性的,所以它在前面加了一個android:,
其屬性型別和系統的一樣

2:在xml檔案中配置好了之后,在layout下面的xml檔案中添加了該控制元件中呼叫這些屬性,如我在我的myview中添加了剛剛定義的三個屬性

3:第三步驟將剛剛添加的屬性簡析,并用起來(注意:決議自定義屬性時,需要在代碼構造方法中決議,自定義view必須實作的兩個構造方法就是下方兩個,
第一個構造方法里面實作的是代碼創建,第二個構造方法里面實作的xml創建,決議屬性在第二個方法中

)

決議屬性:
1:通過
val typedArray = context.obtainStyledAttributes(attributes,
R.styleable.myview)
方法獲取屬性,第一個引數是一個集合,所有的屬性都在這個集合里面,第二個引數是自己的類,并且通過R.styleable告訴它我們要的屬性是自定義的屬性
2:將上面決議的屬性中我們需要的屬性取出,定義的屬性是什么樣的型別就取出什么樣的型別的,我這定義的color型別的,所有我通過getcolor來取,
//獲取屬性
paint_color = typedArray.getColor(R.styleable.myview_Color,Color.GRAY)
arc_color = typedArray.getColor(R.styleable.myview_forColor,Color.GREEN)
text_color = typedArray.getColor(R.styleable.myview_android_textColor,
Color.GREEN)
取出之后一定要將記憶體釋放掉:
//釋放記憶體
typedArray.recycle()
這就是自定義屬性的基本步驟,通過這幾個步驟我們就可以獲得定義的屬性,接下來就是將屬性添加上去就好了,下一篇就以實體的列子來講,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/180730.html
標籤:其他
