1.MeasureSpec通过将SpecMode和SpecSize打包成一个int值来避免过多的对象内存分配。
2.对于DecorView,其MeasureSpec由窗口的尺寸和自身的LayoutParams决定。
手动对view进行测量需要根据view的LayoutParams分情况
match_parent
无法测量,因为不知道parentSize
固定宽高
wrap_content
4.3.3 Draw过程
大概分为下面几步:
(1)绘制背景
(2)绘制自己
(3)绘制孩子
(4)绘制装饰
View的setWillNotDraw这个方法,如果一个View不需要绘制任何内容,设置这个标记为true,系统会进行优化。
自定义View注意事项
1.让view支持wrap_content
2.如果有必要,让view支持padding
3.尽量不要在view中使用Handler
4.view中如果有线程或者动画,需要及时停止
5.有嵌套时,处理滑动冲突