自定义View

View的三大流程: measure,layout,draw。

measure过程决定了View 的宽高,Measure 完成后,可以通过 getMeasuredWidth() 和 getMeasuredHeight() 的方法来获取到View测量后的宽高,几乎所有情况下他都等同于View最终的宽高,(特殊情况除外)。

layout过程决定了View的四个顶点的坐标和实际View的宽高。完成以后,可以通过getTop,getBottom,getLeft,getRight来拿到View的四个顶点位置,并且可以通过getWidth,getHeight方法拿到View的最终宽高,

draw过程决定了View 的显示,只有draw方法完成以后View的内容才能呈现在屏幕上。

对于直接继承自View和ViewGroup的控件,padding是默认无法生效的,需要自己调整的,而margin是生效的,这是因为margin属性是由父容器控制的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容