2018-01-10

自定义View的构造函数使用场景

1.构造函数

2018-01-10_第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就行


2018-01-10_第2张图片

你可能感兴趣的:(2018-01-10)