前言
2020年2月22.距离新年已经过去了大半个月了,依旧的出不了门,依旧的躲在家里一日三餐,依旧的在家办公,也不知道下周会不会复工,再次汇总手中各种保存整理的笔记
相关内容后续GitHub更新,想冲击金三银四的小伙伴可以找找看看,欢迎star
(顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)
https://github.com/xiangjiana/Android-MS
更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我自行查看
一、View绘制的流程框架

View的绘制是从上往下一层层迭代下来的。DecorView–>ViewGroup(— >ViewGroup)–>View ,按照这个流程从上往下,依次measure(测量),layout(布 局),draw(绘制)

二、Measure流程
顾名思义,就是测量每个控件的大小。
调用measure()方法,进行一些逻辑处理,然后调用onMeasure()方法,在其中调用 setMeasuredDimension()设定View的宽高信息,完成View的测量操作。
public final void measure(int widthMeasureSpec, int heightMeasur eSpec) {
}
measure()方法中,传入了两个参数 widthMeasureSpec, heightMeasureSpec 表示 View的宽高的一些信息。
protected void onMeasure(int widthMeasureSpec, int heightMeasure Spec) {
setMeasuredDimension(getDefaultSize(getSuggestedMinimumW idth(), widthMeasureSpec),
getDefaultSize(getSuggestedMinimumHeight(), heig htMeasureSpec));
}

本文详细解析了Android中View的绘制流程,包括 Measure、Layout和Draw三个阶段。Measure阶段负责确定View的大小,Layout阶段确定View在窗口中的位置,Draw阶段执行实际的绘制操作。在自定义View时,需要关注onMeasure、onLayout和onDraw等关键方法的实现。此外,文章还探讨了MeasureSpec的模式和尺寸设定,以及如何根据父容器和自身布局参数确定View的大小。
最低0.47元/天 解锁文章
350

被折叠的 条评论
为什么被折叠?



