您当前的位置: 首页 >  ui

命运之手

暂无认证

  • 1浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【高级UI】【001】Android控件绘制流程

命运之手 发布时间:2021-09-28 11:14:23 ,浏览量:1

流程图

整个流程的核心部分就是这样,理清了就不是很难,一张图足以说明全部问题

在这里插入图片描述 核心代码说明

对于没有耐心看完全部,或者只关心其中一两点的,可以只看文字部分

  • ViewRootImpl,它是一个连接ContentView和WindowManager的角色,控件绘制的任务,最先就是从它开始下发的
  • performMeasure,ViewRootImpl开始全局测量工作
  • performLayout,ViewRootImpl开始全局布局工作
  • performDraw,ViewRootImpl开始全局绘制工作
  • ViewGroup,容器类的View,可以容纳其它的View
  • measure,测量自身大小,不负责具体测量工作,只判断是否需要重新测量,是否需要使用缓存
  • onMeasure,测量自身大小,负责实际的测量工作,需要重新测量时,measure调用onMeasure来完成测量
  • measureChildren,测量所有子控件的尺寸,只有确定了子控件的尺寸,才能确定自己的尺寸
  • setMeasuredDimension,确定自己测量后的尺寸
  • layout,确定自己的布局位置
  • onLayout,确定所有子控件的布局位置
  • draw,绘制自身,只绘制背景、边框等非内容部分
  • onDraw,被draw调用来负责核心内容部分的绘制
  • dispatchDraw,分发绘制事件给子控件,只负责子控件绘制前的判断工作
  • drawChild,需要绘制子控件时,dispatchDraw调用此方法来绘制子控件
关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.0386s