Android中的View绘制原理

本文探讨了Android中View的绘制原理,包括Window、ViewRootImpl和DecorView的关系,以及View的measure、layout和draw三个阶段。重点解析了MeasureSpec的概念和作用,它是父View传递给子View的布局需求,由size和mode组成。onMeasure方法是测量View的核心,允许子类重写设置尺寸。最后讨论了layout方法如何确定View在父View中的位置,以及ViewGroup如何遍历并布局其子View。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该文章参考了
伯努力不努力(https://blog.csdn.net/u012124438/article/details/71435787)
Android_韦鲁斯(https://blog.csdn.net/sinat_27154507/article/details/79748010)
黑暗终将过去(https://www.jianshu.com/p/3654ab59b908)
博主的文章,如有侵权请通知删除

在介绍VIew绘制原理之前,简单介绍一下Window,ViewRootImpl,DecorView之间的联系。

一个 Activity 包含一个Window,Window是一个抽象基类,是 Activity 和整个 View 系统交互的接口,只有一个实现子类PhoneWindow,提供了一系列窗口的方法,比如设置背景,标题等。一个PhoneWindow 对应一个DecorView 跟 一个 ViewRootImpl,DecorView 是ViewTree 里面的顶层布局,是继承于FrameLayout,包含两个子View,一个id=statusBarBackground 的 View 和 LineaLayout,LineaLayout 里面包含 title 跟content,title就是平时用的TitleBar或者ActionBar, contenty也是FrameLayout,activity通过 setContent()加载布局的时候加载到这个View上。ViewRootImpl就是建立 DecorView 和 Window 之间的联系。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值