1.onMeasure()->onDraw()->onLayout()
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
测量模式 | 表示意思 |
---|---|
UNSPECIFIED | 父容器没有对当前View有任何限制,当前View可以任意取尺寸 |
EXACTLY | 当前的尺寸就是当前View应该取的尺寸 |
AT_MOST | 当前尺寸是当前View能取的最大尺寸 |
2.若是需要配置自定义样式,需要在styles/文件下创建自定义样式。在自定义View的构造函数中就获取自定义样式属性。
3.onDraw() 一般是用来绘制非矩形形状背景用。使用Paint,Canvas实现。
4.onLayout()一般是自定义ViewGroup的时候使用到。定义子View在父布局中摆放位置。较复杂的位置摆放需要考虑屏幕适配问题。否则易出现在不同手机上布局异常。