1、步骤:
- 在values文件夹下创建用于自定义属性的样式文件
- 在layout的xml文件夹下引用自定义的属性
- 在xml文件对应的控件中将自定义的属性进行解析
2、自定义color代码实现:
第一步:
<resources>
<!-- name:声明你要在哪个控件中使用这个自定义的属性-->
<declare-styleable name="ykLoading">
<!-- name:自定义属性的name format:自定义属性的值类型(reference:表示可以引用自定义的值)-->
<attr name="ykCircleColor" format="color|reference"/>
</declare-styleable>
</resources>
第二步:使用自定义的属性
<ykView
app:ykCircleColor="@color/ykCircleColor"/>
第三步:在自定义的控件中解析xml布局文件中的自定义属性(注意构造方法的使用)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet){
// attributeSet:解析xml中的属性
// R.styleable.ykLoading:告知自定义的属性要作用在哪个文件(一般填当前本文件)
var attrArray = context.obtainStyledAttributes(attributeSet,R.styleable.ykLoading)
// 对外部变量进行赋值(R.styleable.ykLoading_ykCircleColor:被获取值的属性名 第二空:当被取值的属性没有值时,设置的默认值)
外部变量= attrArray.getColor(R.styleable.ykLoading_ykCircleColor,Color.BLACK)
}
网友评论