Android开发者必须要了解的View工作过程(总览)

View的工作原理之总览

ViewAndroid系统中特别重要的部分,它展示了Activity中的界面效果.

Android中,TextView、EditView、LinearLayout......等实际上都属于View

目录

  • 1. View的整体工作过程
    • 1.1 伪代码
    • 1.2 界面结构
    • 1.3 工作过程
  • 2. 测量(measure)过程
    • 2.1 测量过程图
  • 3. 布局(layout)过程
    • 3.1 布局过程图
  • 4. 绘制(draw)过程
    • 4.1 绘制过程图

1. View的整体工作过程

1.1 伪代码

因为ViewGroup是所有View容器的父类,此处使用ViewGroup

<ViewGroup id="vg1">

    <ViewGroup id="vg2">
        <View id="v2">
        View>
    ViewGroup>

    <View id="v1">
    View>
ViewGroup>

1.2 界面结构

Android开发者必须要了解的View工作过程(总览)_第1张图片

1.3 工作过程

Android开发者必须要了解的View工作过程(总览)_第2张图片

2. 测量(measure)过程

如果当前的View是不是ViewGroup类型,那么就会直接调用measure,否则,除了完成自己的测量,还会遍历去调用所有子元素的measure方法,各个子元素再递归去执行这个流程。

measure方法是final修饰的,所以不能重写measure,只需要重写onMeasure

2.1 测量过程图

Android开发者必须要了解的View工作过程(总览)_第3张图片

3. 布局(layout)过程

layout的作用是ViewGroup用来确定子元素的位置,当ViewGroup的位置被确定后,它在onLayout里面会遍历所有的子节点,并调用layout方法

onLayout的具体实现和具体的布局有关。

ViewGrouplayout方法是final修饰的,所以不能重写layout,只能重写onLayout,如果继承自ViewGroup,必须重写onLayout

Viewlayout方法不是final修饰的,所以可以重写layout,也可以重写onLayout

使用ViewgetWidth()getHeight,必须在onLayout流程走完之后才有效果

3.1 布局过程图

Android开发者必须要了解的View工作过程(总览)_第4张图片

4. 绘制(draw)过程

绘制过程一般有如下几步骤:

  1. 绘制背景,background.draw(canvas)
  2. 绘制自己 onDraw
  3. 绘制子元素 dispatchDraw
  4. 绘制装饰 onDrawScrollBars

4.1 绘制过程图

Android开发者必须要了解的View工作过程(总览)_第5张图片



推荐视频教程:

Android从整体到局部系列视频教程戳我

广告:

我使用的装备备:程序员必备 | 不伤关节 | 手感好 | 静电容 | Plum键盘|Niz键盘 戳我



你可能感兴趣的:(Android开发系列,Android,Notes,Android,VIew,工作过程,流程图)