自定义View一:自定义属性使用
2018-01-15 本文已影响7人
橘子树上结西瓜
自定义属性使用
1.自定义View里面
public MyCircleView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);//attrs是使用自定义属性,这里用this关键字调用当前类的构造方法
init();
}
public MyCircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
ALog.d("颜色1:" + mColor);
//使用自定义属性(如:颜色)
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyCircleView);
mColor = a.getColor(R.styleable.MyCircleView_circle_color, Color.BLUE);
ALog.d("颜色2:" + mColor);
a.recycle();
init();
}
/**
* 设置画笔颜色
*/
private void init() {
mPaint.setColor(mColor);
}
2.自定义属性
在values目录下面创建自定义属性的XML:attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyCircleView">
<attr name="circle_color" format="color"/>
</declare-styleable>
</resources>
3.布局中使用
(1)最外层布局:xmlns:app="http://schemas.android.com/apk/res-auto"
(2)自定义View里:app:circle_color="@color/pink"