自定义view有以下几个类型
1、继承特定view。场景:拓展某种已有的view的功能,在原有的view基础增加功能,不需要自己支持wrap_content&padding
2、继承view,场景:实现不规则的效果、自定义控件,通过绘制的方式实现,需要自己支持wrap_content&padding,不需要支持margin,因为margin属性是由父容器决定的
3、继承特定viewgroup,场景:拓展某种布局的布局方式,在原有viewgroup的基础组合,与自定义viewgroup,更加简单,但自由度不高
4、继承viewgroup,场景:实现不规则效果、自定义布局,viewgroup&子view的measure、layout过程,需要自己支持wrap_content&padding&margin,更加接近view的底层
自定义常见属性
reference 某一资源id, 如mipmap、drawable、color等
color 颜色值,使用的话通过#xxxxxx方式添加属性值
string 字符串
dimension 尺寸值。属性的值单位为xxdp/sp/dip等等
view的使用场景
attr.xml常见属性
命名规范,成员变量私有属性,m开头