View绘制原理

Android View的绘制流程分为三大流程:测量,布局,绘制

Activity通过Window与View关联,在Android中Window的实现是PhoneWindow,在PhoneWindow中存在DecorView,DecorView在Activity的onCreate生命周期的setContentView中初始化,其实DecorView就是一个ViewGroup,继承关系:DecorView->FrameLayout->ViewGroup。

对于视图的绘制在Activity的onResume生命周期后通过WindowManager的addView开始,被添加的View就是DecorView,WindowManager调用WindowManagerImpl,然后WindowManagerImpl通过桥接模式调用WindowManagerGloable的addView,在其中会创建ViewRootImpl终调用到ViewRootImpl的setView方法然后三大流程都是始于ViewRootImpl的performTravels函数,先是从调用View的PerformMeasure函数开始测量流程,再是调用performLayout函数开始布局流程,进而是调用performDraw函数开始绘制流程。

measure主要用于根据父类约束进行测量宽高值layout主要确认view的左上右下坐标位置draw用于对视图进行绘制,绘制流程包括:绘制背景色->绘制自己->分发绘制->绘制前景色及滚动条自定义

view需要注意的几个点:

1.自定义View时,需要考虑宽高wrap_content的情况,因为它的表现在测量阶段和match_parent是一致的

2.重写View的onDraw函数,要避免在onDraw创建对象,因为onDraw会被调用多次,可以考虑在onsizeChanged函数创建。

3.如果View会ViewGroup需要改变自身大小,应该在onMeasure函数实现,并通过setMeasureDimension保存下来。

4.重写ViewGroup的onDraw函数时,要注意onDraw函数在整个draw流程的地位,以及它并不是都会被调用

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值