Android Framework调用Invalidate会触发刷新界面
为什么要触发界面刷新呢?
通常是导致视图的改变会触发重新刷新,比如改变背景,按钮点击显示为选中状态,动态添加视图
为什么视图改变就要重新刷新界面呢?
目前Android Framework的做法是刷新界面,除去这种办法,还有其他方式可以实现视图改变并在屏幕能够看到反应吗?(没有其他办法)
举一个例子
可以把Android手机想像成一个拿着画板的人,如果你想让这个人往画板上画一个圆圈。
首先需要先通知这个人,你有在面板上画东西的需求。(相当于invalidate)
其次告诉这个人,画在哪一个区域(相当于invalidate中传递的重绘区域rect)
还要告诉这个人圆圈的大小(onMeasure), 圆圈的具体位置(onLayout)
最后开始这个人接受完这些信息,在自己手里拿的面板上按照之前的要求画一个圆圈(onDraw)