博客
关于我
面试题七:View的绘制
阅读量:583 次
发布时间:2019-03-11

本文共 716 字,大约阅读时间需要 2 分钟。

View绘制原理详解

View在Android系统中的绘制过程包括三个核心步骤,每一步都精确配合,确保显示效果符合预期。

1.1 测量阶段

View的绘制首先需要通过measure()方法进行尺寸测量。这个过程是从顶层父View开始,逐层向下递归到目标子View。measure()方法最终会通过onMeasure()方法执行具体的测量逻辑,获取子View的宽高和其他必要参数。

此阶段的关键在于确定每个View的合适尺寸。系统会根据父View的布局参数和约束条件,计算出子View所需的最优尺寸,确保整个界面呈现流畅一致。

1.2 布局阶段

完成测量后,系统会进入布局阶段。父View会根据测量得到的子View尺寸和布局参数,确定子View的最终位置。这个过程通过调用子View的layout()方法来实现,确保整个View树的布局信息准确无误。布局阶段的核心是决定每个子View在Canvas中的绝对位置,使得界面呈现出预期的布局效果。

此阶段特别注意处理多个子View的相对定位和撑持问题,确保不同View之间的关系和距离都能准确呈现。

1.3 绘制阶段

View的最终绘制工作通过调用onDraw()方法来完成。这个过程分为几个关键步骤:

  • 绘制View的背景
  • 绘制视图层
  • 绘制主要内容
  • 处理复杂的子View绘制(如嵌套View)
  • 恢复图层图纹
  • 绘制滚动条等辅助元素
  • 每个环节都精确执行,确保界面不仅形态正确,还能流畅地响应用户交互。

    总结

    从测量、布局到最终绘制,每个阶段都通过精确的逻辑运算和跨层调用,确保最终View呈现既美观又功能性的界面。理解这三个阶段的内在逻辑,是优化View绘制性能和解决常见界面显示问题的基础。

    转载地址:http://kfttz.baihongyu.com/

    你可能感兴趣的文章
    论文报告/前沿文章
    查看>>
    函数与高级变量
    查看>>
    键盘事件
    查看>>
    2020-11月计划实施表
    查看>>
    折线图
    查看>>
    常识:
    查看>>
    注册页面案例
    查看>>
    np.bincount(x)的简单解释
    查看>>
    一些面试的准备的回答
    查看>>
    LeetCode Top-100 T22-括号生成
    查看>>
    svg基础+微信公众号交互(二)
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    deepin 安装过程记录
    查看>>
    JAVA 多线程
    查看>>
    Java的 arraylist类【具体案例】
    查看>>
    FileWriter
    查看>>
    删除DOM节点
    查看>>
    牛客-链表中环的入口节点(Java)
    查看>>
    【ARM自学笔记】ARM Cortex -A中断系统(程序篇)
    查看>>
    解决微信小程序中 calc 失效问题
    查看>>