您的位置:网站首页 > 热门源码 > 正文

基于Android 80的源码分析(View的绘制流程

类别:热门源码 日期:2018-9-17 5:13:05 人气: 来源:

  据CNBC报道,社交网络巨头Facebook已承认向61家科技公司提供了其用户数据的特殊访问权限,此前该公司曾在2015年公开表示此类访问。Facebook在上周五晚些时候提交给美国的747页文件中承认,该公司在2015年5月宣布上述做法后,继续与61家硬件和软件制造商分享用户信息。

  本篇来自豌豆射手_BiuBiu的,分享了Android源码分析(View的绘制流程),一起来看看!希望大家喜欢。

  View是何时开始绘制的?Activity走了onCreate方法吗?这篇文章就是从程序的入口ActivityThread入口程序,去解释View中的measure()方法、View中的layout、View中的draw怎么开始调用的,非常有意思!虽然好多的技术文档,在半个月前已经做好了,这篇文章,对我自己来讲的话,是个很好的复习~~

  为了更好地阐述着这篇文章,我这里就直接抛出结论了,为啥会这样的,在下篇文章会讲到,这里就记住一点,在Activity onResume后,调用了View onAttachedToWindow 才会开始View measure

  既然在知道了,activity 获取焦点,会在执行,那么View的绘制就会在下面的函数中进行。

  去寻找WindowManagerGlobal的addView()方法。这里有个单利模式,在源码好多地方使用的单利模式都是这样,并没有进行双断,在老牌的图片加载框架ImageLoader也是这样获取单利对象,如果想了解更多设计模式的姿势,可以看这片文章二十三种设计模式.

  后续我会做一篇文章详细解释下,为什么会这样,这里不过多的解释了,自提一句,非常有意思的代码!以前还会有两次的layout,说明谷歌也在优化 framework。todo

  performTraversals这里就是整个View绘制的开始,所有的绘制,都会从这里开始,虽然这个方法代码有点多,但是关键的地方我都做了注释,下面一步一步的分析

  注意这个对象outParams lp ,如果说lp.horizontalWeight>

  0.0f或者是lp.verticalWeight>

  0.0f,那么measureAgain =true;horizontalWeight这个标记大概是这个意思额外空间的多少将被水平分配。如果视图指定0不应被拉伸。否则额外像素将被优先评估。在所有重量大于0的视图中。一般都出还有多少的水平的空间将要被分配。巫毒僵尸

  文章由325棋牌提供发布

关键词:android源码
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: