自定義屬性(以SimpleStar為例)
一.在attrs文件中聲明自定義屬性
Paste_Image.png
1.declare-styleable的 name最好設置成自定義控件的名稱,這樣就可以可以通過快捷鍵進行快速跳轉
2.注意format 如果attr的值類型為尺寸則要聲明為dimmession,不要使用integer哦(如果attr聲明的format類型與在布局文件中使用時傳入的類型不一定,則在程序運行時,會崩潰:如下
Paste_Image.png
)
3.如果format類型為參考某一資源ID(例如drawable,mipmap下的圖片),則聲明為reference
二. 在自定義的控件中獲取屬性
Paste_Image.png
1.TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.SimpleStart); 從屬性集合attrs中取出自定義styleable SimpleStart的attrs,放入TypeArray數組中
2.使用ta.getXXX獲取相應的屬性值(如果format為references則使用getResourceId)
注:屬性的格式為:declare_styeable的name 下劃線 style的name_attr中的name
如SimpleStart_star_width SimpleStar為styeable的name
star_width為attr的name
三.在布局文件中使用自定義屬性
Paste_Image.png
1.app:star_width的值也可以設為一個尺寸資源的Id如 app:star_width=“@dimen/star_witdh”