美文网首页
View的绘制流程简述

View的绘制流程简述

作者: 空山Echo | 来源:发表于2019-05-09 13:37 被阅读0次
    1. view的绘制流程从ViewRoot的performTraversals方法开始,经过measure、layout、draw三个过程后讲一个view绘制出来。
    • measure:用来测量view的宽高
    • layout:用来确定在父容器中的位置
    • draw:负责将view绘制在屏幕上
    2. performTraversals方法会依次调用performMeasure、performLayout、performDraw三个方法。在这三个方法中分别完成顶级view的measure、layout和draw流程。已performMeasure为例,其中会调用measure方法,在measure方法中又调用onMeasure方法,onMeasure方法则会对所有的子view进行measure,这样就完成依次measure过程。接着子元素会重复父容器的measure过程,如此反复完成整个view树的遍历。同理另两个方法传递流程与此类似。
    image.png
    3. Measure过程完成后可以通过getMeasureWidth和getMeasureHeight方法获得View的测量宽高。测量宽高几乎所有情况下与实际宽高相等,除特殊情况除外,如需要反复测量下
    4. Layout过程决定view四个顶点的坐标和实际宽高,可以通过getLeft、getRight、getTop、getBottom分别获取顶点坐标,getWith和getHeight方法获得最终宽高。
    image.png
    5. Draw过程决定view的显示,只有draw方法完成以后view内容才能在屏幕上显示

    相关文章

      网友评论

          本文标题:View的绘制流程简述

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