我的世界我爱编程程序员

源码解读之View的大致绘制流程

2018-04-16  本文已影响16人  九尾74

最近,我一直在跟着网上的一些视频来进行源码的阅读,也建议现在已经有一些底子的程序员兄弟们去尝试着以源码的

阅读方式去解决一些遇到的问题。

为什么需要去阅读源码,我觉得有一下两点最为主要:

1.我相信如果是刚入门安卓的,或者其他语言学习的兄弟,要是遇到问题,ok,先百度再说。

  毕竟人赖(包括我来说),有一个可以直接得到问题解决的方法干嘛不用?确实,百度上博客或者其他

地方的很多大神们把他们曾经踩过的坑都写得很清楚,包括他们解决这些坑·的办法。然而这并不是我们解决问题

是第一个该想到的办法,借助外力而已,当然也不排除使用,不过。如果经常使用就会对你带来一些后果。解决问题的能力

在其他方面得不到提升的尴尬。

2.源码里面,拥有者许多值得我们去学习的编码模式和其他的东西,我们可以去模仿甚至去超越他们(以我现在的水平,

模仿估计还勉强做得到,超越就先不扯了)

好,到这里我就不比比太多了直接和大家聊聊今天我想和各位讨论的主题——View的大致绘制流程

不放出实际效果图了哈,只是跟大家扯扯,以后大家遇到什么问题是有关View的绘制的,心里好有个底。

先点进去,可以看到View是这个样子的,

当然这个不是重点。我需要把注意力集中·在这几个类上面,也把注意力集中在绘制流程上面

(View的绘制流程有三步:测试流程-->摆放流程--->绘制流程)

第一个是measure()方法,这里值得一提的是他里面是调用了OnMeasure()方法的,所以讲到这里相信很多小伙伴都察觉到

了,其实重写OnMeasure()也可以重写measure()方法的。

接下来就是OnDraw()方法,是的,里面啥子没做,super出来你就会知道。这个类先放着

第三个是draw()方法,这个才是绘制的猪脚,

里面值得注意的是dispatchDrawCanves()与OnDraw()方法调用的问题,

这里可以看出,如果我们继承的是ViewGrounp(比如相对布局)的东西,这个OnDraw()是不会被调用的

他里面做的一些判断,ViewGrounp是无法通过的,加入有天你遇到了一个继承Viewgrounp的而不是子View的调用了OnDraw()方法

这个方法是行不通的,如果你想在OnDraw()里面搞一些事情的话,可以再dispatchDrawCanves()这里搞才会生效,

就讲到这里了,后面的内容我有点一笔带过,因为现在这个点我需要出离开电脑了

,所以有什么不理解或者我写得不合适的地方

希望大家体谅。。。。。

源码解读之View的大致绘制流程 源码解读之View的大致绘制流程 源码解读之View的大致绘制流程 源码解读之View的大致绘制流程 源码解读之View的大致绘制流程

喜欢开黑的小伙伴可以加我微信lck19960817哦!!现在虽然不怎么热情了,但是玩还是有时会玩的

上一篇下一篇

猜你喜欢

热点阅读