美文网首页
View的工作原理

View的工作原理

作者: 和莱 | 来源:发表于2020-03-21 12:17 被阅读0次

ViewRoot和DecorView

在ActivityThread创建Activity以后,会将顶级View DecorView添加到Window中,同时创建ViewRootImpl对象RootView和DecorView关联。RootView的perfromTravelsals方法对View进行绘制,经过measure、layout、draw将View绘制出来,其中measure方法用来测量View的宽和高,layout用来确定View在父容器中的布局,draw将View显示在屏幕上。


1.png

performRravelsals方法会依次调用performMeasure、preformLayout和performDraw方法,这三个方法完成对顶级View DecorView的绘制,而performMeasure又调用measure方法,measure方法继续调用子元素的measure方法依次完成View树的遍历,其他两个方法类似。

理解MeasureSpec

在测量过程中,系统会将View的LayoutParams根据父容器所施加的规则转换成MeasureSpec,然后再根据这个MeasureSpec测量出View的宽和高。顶级View DecorView和普通View的测量过程也不太,顶级View由LayoutParams和窗口大小共同决定MeasureSpec,普通View由LayoutParams和父容器所施加的规则共同决定MeasureSpec,MeasureSpec一旦确定,onMeasure方法就可以确定View的宽和高了。

measure过程

如果是原始的View,则调用measure方法就完成了测量过程,如果是ViewGroup,出了完成自己的measure过程,还需要遍历子元素的measure方法。

layout过程

layout方法步骤是,首先通过setFrame方法设定View四个顶点的位置,这样就确定了View在父容器中的位置,然后再调用onLayout方法确定子元素的位置。

draw过程

绘制背景、绘制自己、绘制子元素(通过dispatchDraw方法遍历所有子元素的draw方法,如此draw事件就一层一层传递下去了)、绘制装饰。
源码如下:


2.png

相关文章

  • View 的测量

    接着上篇 View 基础 来讲 View 的工作原理,View 的工作原理中最重要的就是测量、布局、绘制三大过程,...

  • 【Android】自定义ViewGroup

    关于View的工作原理、绘制流程等,在第4章 View的工作原理[https://www.jianshu.com/...

  • View 工作原理

    1、 ViewRoot 和 DecorView 介绍 ViewRoot 对应于 ViewRootImpl 类,它...

  • View工作原理

    参考书籍:Android开发艺术探索注:京东链接https://item.jd.com/11760209.html...

  • View工作原理

    View工作原理 首先先来说明一下要掌握的知识 View绘制工作整体流程 Measure Layout Draw ...

  • View工作原理

    1、起步分析 在Activity启动分析中 知道,Activity的创建是在ActivityThread.perf...

  • View工作原理

  • View工作原理

    view有三大工作流程:测量、布局、绘制,分别对应着方法mesure、layout、draw ViewRoot和D...

  • View工作原理

    ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,Vi...

  • View的工作原理

    ViewRoot对应于ViewRootImpl类,是连接Windowmanager和DecorView的纽带,Vi...

网友评论

      本文标题:View的工作原理

      本文链接:https://www.haomeiwen.com/subject/xdhyyhtx.html