android View绘制流程

android的View的绘制流程大概就如同我们作画一样,分为以下几步:

1. 测量出每个view的大小。

2.根据上一步测量得到的大小,确定view绘制的坐标位置。

3.有了具体的位置及view大小,开始绘制view。

我们的Activity在创建的时候就会对应的创建一个window,用于展示我们需要展示的view,可能android为了统一界面风格吧,在activity创建的时候就给安排好了主要的三个部分,statusbar,actionbar, content,其中actionbar和content都是decorview的子View。

而所有的view的展示都依赖于在activity创建时创建的phonewindow,而view添加到phonewindow的过程又依赖于ViewRootImpl,viewrootImpl通过调用performTranversals方法,将view添加到window上。

在performTranversal方法中会依次调用mView的measure,layout,draw方法,这三个方法也就完成了我们上面提到的那三点。

measue方法,用于测量view的大小,这里view的大小是通过父view的mode及size结合子view layoutparam来确定的,首先会通过迭代的方式,计算得到子View的具体大小,然后再依次向上得到每个父View的大小(对于初始设定了大小的view,并不由其子View决定其大小),最终算出每个view的大小。measue方法是final类型的,子View不可以重写该方法,但是在measure中会调用onMeasure方法,可以重写该方法,来做不同的测量方式,

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值