自定义属性(以SimpleStar为例)
一.在attrs文件中声明自定义属性
1.declare-styleable的 name最好设置成自定义控件的名称,这样就可以可以通过快捷键进行快速跳转
2.注意format 如果attr的值类型为尺寸则要声明为dimmession,不要使用integer哦(如果attr声明的format类型与在布局文件中使用时传入的类型不一定,则在程序运行时,会崩溃:如下
)
3.如果format类型为参考某一资源ID(例如drawable,mipmap下的图片),则声明为reference
二. 在自定义的控件中获取属性
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
三.在布局文件中使用自定义属性
1.app:star_width的值也可以设为一个尺寸资源的Id如 app:star_width=“@dimen/star_witdh”