自定义View的构造函数使用场景
1.构造函数
2.调用时机:
(1) MyView(Context context)
代码中动态创建MyView时候调用
MyView myView = new MyView(this);
(2) MyView(Context context, @Nullable AttributeSet attrs)
xml文件中添加MyView时候调用,第二个参数是xml自定义attrs属性,
(调用实例)
//TypeArray 存放attrs中获取的属性数组;属性使用:styleable名称+“_”+属性名称
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
int textColor = array.getColor(R.styleable.MyView_textColor, 0XFF00FF00);
array.recycle(); //调用recycle()函数,否则对下次使用有影响
(3) MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr)
(4)MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes)
defStyleAttr:主题中优先级最高的属性
defStyleRes:优先级次之的内置于View的style
主题的优先级:
xml直接定义>xml中style引用>defStyleAttr>defStyleRes>theme直接定义
3.写法
为了避免不确定的构造函数创建,需要写多个初始化的问题,使用this进行关联,这样只需要创建一个初始化view就行