chenlijunfan / IndirectAmbition

间接性踌躇满志
0 stars 0 forks source link

2019-07-24 谈谈View(1) #9

Open chenlijunfan opened 5 years ago

chenlijunfan commented 5 years ago

如何实现自定义view,invalidate和postInvalidate方法的区别?

chenlijunfan commented 5 years ago

1、继承view或者ViewGroup,重写onDraw()方法,调用invalidate()方法重新绘制view 2、继承现有控件(TextView,Button等)扩展控件 3、构造方法 4、通过onMeasure()测量子控件宽高;onLayout()控制子控件位置;onDraw()绘制所需的图形

invalidate() 触发重新绘制,只能在主线程调用;postInvalidate()直接调用去在子线程更新UI