位置: 编程技术 - 正文

View分析总结(interview分析方法)

编辑:rootadmin
通过阅读android官方文档,知悉View的相关绘画流程和重要方法,以此为脉络来一一分析View。要分析一个事物,至少对该事物有一定了解,最好能知道该事物的原理,才能有流程的去分析它。View从开始到绘画经过的流程是:1、测量长宽。由于View在android绘画系统中体现的几何体是矩形,所以相应,长宽是View的基本元素。在测量的过程以最大长宽为测量结果的原则。通过比对传递进来的长宽参数、背景长宽、最小长宽。取三个之间的最大&#;。View通过measure(int,int)和onMeasure方法来测量长宽,具体测量方法由onMeasure执行。2、确定位置。在测量完了View的大小之后,就需要确定该在哪里放置该View。实质上Android调用了layout(int,int,int,int)传递进来的参数就是该View的位置。只不过在确定位置的同时也需要确定需要重画的区域。layout就是更新View的位置&#;和计算重画区域,在计算重画区域的时候会调用父View的invalidateChild方法再去更新重画区域。确定位置的方法主要是layout(int,int,int,int) 和 setFrame(int,int,int,int)、invalidate()。这里会回调两个重要的方法:onSizeChanged(int,int,int,int)和onLayout。其中onSzieChanged只有当在确定位置时候发现长宽也改变了的时候,会去回调该方法。而onLayout则是在确定完位置后回调该方法。3、绘画View。在测量了长宽和确定了绘画位置之后,就是把View真正绘画到屏幕上面。这里绘画流程其实根据两个重要的参数去选择要执行的流程:FADING_EDGE_HORIZONTAL和FADING_EDGE_VERTICAL两个参数。这两个参数其实是滚动条是否渐隐的参数。如果设置了其中之一,那么将会执行完整流程。如果未设置这两个参数,那么将会执行省略流程。这两个流程的区别是:有无执行保存画层步骤。整个绘制的过程是这样子的:1、绘画背景2、保存画层3、回调onDraw() ,一般在这里执行自定义内容4、dispatchDraw().画子View5、保存画布6、绘画装饰品。ScrollBars。其中invalidate()也就是确定重画区域会在不同的流程步骤中会被重复调用。而且从组件的角度上看,不难看出View由背景、内容、滚动条组成。好了,分析到这里就告一段,不过你不会感到奇怪吗?上面流程中的方法都是被谁调用的?在哪里调用的,传递进来的参数都是怎么计算的?我们结合Activity的生命周期来分析View方法被调用的位置.通过发现在onRusme后View上面的重要流程方法才被调用。通过实验发现onMeasure等方法在介于onPostResume()和onWindowFocusChanged方法之间被调用。我们从onPostResume回调入手。但是通过静态代码来追踪实在是比较困难,所以通过在onPostResume设置断点来跟踪方法调用栈.调用前,先设置Android源码路径。根据调试调用栈信息,终于发现view以上方法的调用地方为ViewRoot.以下为整个调用链(以下调用链以首次打开Activity为场景):1、ActivityThread.handleLaunchActivity2、ActivityThread.performLaunchActivity3、ActivityThread.handleResumeActivity4、ViewManager.updateViewLayout(这里的ViewManager经过跟踪实质上是:WindowManagerImpl)5、ViewRoot.setLayoutParams.6、ViewRoot.scheduleTraversals7、ViewRoot.performTraversals8、..开始调用 measure,layout,draw。OK,经过了一系列的分析终于把View的绘制流程搞清楚了。

推荐整理分享View分析总结(interview分析方法),希望有所帮助,仅作参考,欢迎阅读内容。

View分析总结(interview分析方法)

文章相关热门搜索词:systemview分析,event viewer分析,review分析,vosviewer分析,vave分析,view analysis,vave分析,event viewer分析,内容如对您有帮助,希望把文章链接给更多的朋友!

Android进程间通信--AIDL 本文讲解AIDL的基本使用,通过本文的学习你应该掌握如下内容:1.了解Android进程间通信IPC(interprocessCommunication);2.学会AIDL的基本使用方法,实现在进程间

JSON学习 JSON的定义:一种轻量级的数据交换式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类于正则表达式,获得

Android Http访问网络 学习(慕课网学习) 一:通过Http下载百度源码加载到WebView显示1:需要访问网络必须先要获取网络权限:spanstyle=font-family:Arial,Helvetica,sans-serif;uses-permissionandroid:name=android.perm

标签: interview分析方法

本文链接地址:https://www.jiuchutong.com/biancheng/381054.html 转载请保留说明!

上一篇:[开源] android apk 一键生成混淆文件 脚本分享 (python)(开源 android 播放器)

下一篇:Android进程间通信--AIDL(android进程间通信机制有哪些)

  • 土地增值税与增值税
  • 税前扣除项目包括
  • 公司买手表账务处理
  • 发行股票手续费佣金计入什么科目
  • 企业会计准则颁布部门
  • 非金融单位贷款利息收入列示什么科目
  • 支票报销是怎么操作的
  • 计提物业费会计分录
  • 其他应收款 应收账款
  • 企业增值税留抵退税新闻稿范文
  • 设备租赁费开票属于哪个大类
  • 已认证未抵扣的发票,又做了红字,如何处理
  • 扣收手续费
  • 吊车租赁费计入什么会计科目
  • 普通机打发票可以抵税吗
  • 保险公司代收车船税完税证明在哪里打印
  • 如何找确定劳动关系的证据
  • 坏账准备需要做账吗
  • 工程施工合同暂估价格入账会计分录
  • 1697508669
  • 土地使用税和房产税
  • 增值税认证平台确认以后还可以再认证吗
  • 制造费用明细科目有哪些
  • qqprotect.exe是什么进程?怎么结束此进程?
  • 未担保余值的账户怎么查
  • 对公收到别人的转账怎么记账
  • 冲销以前年度多做的其他应收款
  • 母公司给子公司拨款要交税吗
  • 税收分类编码怎么添加
  • 银行承兑汇票开出后可以撤销吗?
  • 房地产开发企业分为几个等级
  • 三七粉的功效与作用及正确吃法
  • elccest.exe是间谍广告程序吗 elccest进程有什么作用
  • Win10 20H2/2004 Beta Build 19042.789累积更新补丁KB4598291正式推送
  • cda是什么文件格式
  • 最薄的平板电脑是哪种
  • php stl
  • vue项目难点及解决方法
  • 微信小程序分包加载
  • 购置固定资产用什么凭证
  • 企业新产品销售收入数据
  • vue.js in action
  • RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublas‘
  • 老板的财务
  • 社保缴费基数是怎么确定的
  • 连锁店总部的组织架构
  • php sleep()
  • 万元发票和千元发票
  • 0税率可以抵扣进项税吗
  • 珠宝可以开票抵扣吗
  • 培训学校不退学费找什么部门
  • 起征点与免征额的联系
  • 哪些项目不可以抵扣进项
  • 制造费用转入生产成本摘要怎么写
  • 计提以前年度应付股利的分录
  • 收到客户不要的定金怎么做账?
  • 人力公司开的代驾发票
  • 红字更正法的使用范围是什么
  • 工程结算属于什么行业
  • 在建工程怎么记账
  • 什么是加计扣除农产品进项税额
  • 账簿设置方法
  • win7跟xp怎样连接局域网
  • win2003服务器管理
  • 详述社会体育学科的研究对象
  • 如何编译安装
  • 怎么给网络设置防火墙
  • ubuntu怎么切换到桌面
  • linux系统怎么维护
  • win8屏幕分辨率显示不全
  • 浅谈一下新冠的好处
  • cocos2dx入门
  • vim三种模式及其之间的切换
  • node.js的安装方法
  • cmd开机启动命令
  • bitmap压缩到指定尺寸
  • <script defer> defer 是什么意思
  • jquery easyui从零开始学pdf
  • 吉林网上报税网址
  • 物业管理用房如何缴纳房产税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设