Android绘制的一些总结onMeasure,onLayout,onDraw

我发现写博客真的很花时间,一个小问题都要研究很久,这里讲的Android绘制的总结。所有的调试都在Android 5.0

Android的View绘制一般分三步,onMeasure 计算width和height.onLayout计算位置,onDraw绘制,一般View还有个onFlinshInflate这个方法就是在布局xml文件里面的控件被解析加载进来结束后调用,所以结合Activity的生命周期就是onCreate -> View onFlinshInflate -> onStart -> onResume->View onMeasure->View onLayout -> View onDraw

View的invalidate 和 postInvalidate 这个很容易使用场景不一样,一个是在UI线程里面使用,一个是在非UI线程里面使用

View的invalidate 和 requestLayout。一个只调用onDraw方法重绘内容,一个会重新调用onMeasure,onLayout,onDraw把View的位置,内容都重绘一遍

附图一张,图片来源:https://plus.google.com/+ArpitMathur/posts/cT1EuBbxEgN


View的forceLayout 和 requestLayout,这个不太容易弄得清,看了几篇文章,总结就是如果是仅仅是自己改变size就调用requestLayout,如果觉得sibling view 也会受到影响或是ViewGroup觉得它子view都要重新布局,总这因为requestLayout有个追述ViewRoot的过程,会更慢


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值