android 自定义控件分三类:
1.继承原有的控件。
2.组合控件,两种控件组合在一起。
3.自己绘制的控件。
requestLayout方法的意义在于如果你的操作有可能会让控件的尺寸或位置发生改变那么就可以调用该方法请求布局,调用该方法后framework会尝试调用measure对控件重新测量:
自定义控件指定了两个android自带的两个属性:layout_width和layout_height,当我们需要使用类似的属性(比如更多的什么id啊、padding啊、margin啊之类)时必须在自定义View的构造方法中添加一个AttributeSet类型的签名来解析这些属性:
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}