最近在研究 MPAndroidChart 的源码,我去年接触到这份开源代码,刚看的时候真是和看天书一样。不久前我想自己写图表的自定义控件,发现自己真的难以写出扩展性好、灵活性高的自定义控件。于是想起来自己曾经看过的 MPAndroidChart 的代码,再把它拿出来研究研究。
研究的过程中,我发现里面有一些方法在百度上搜索不到相关的帖子,想到以后有新手玩家想搜索这个方法却搜不到是多么沮丧,于是就到Google官方文档看了这个方法,用中文写了出来,同时也鼓励新手玩家慢慢养成看官方文档的习惯。
研究源码是一件困难的事情。著名的源码的产生的过程一般是这样的:一个高手(或者是一个团队)花了好长一段时间来实现某功能需求,写代码,优化代码,进行了多次的反馈,然后进行迭代升级。想扫几遍就读懂它是不可能的。我们看源码就要有读经典书籍的心态:一次看不懂,就多看几次,看了一个月看不懂,就多看几个月,不会的知识点就把它补上。读源码可能一时之间看不到有什么用,可能读再久也看不到有什么用。但读源码应该能让我们更接近成为一个真正的程序员,而不是一个只会使用开源框架、只会复制粘贴的码农吧。
前面只是个人的一些胡思乱想的东西,下面进入正题。
先上个效果图。
红色矩形那一块区域是我自己写的一个自定义 View,在里面画了一个矩形。
关于RectF的inset()方法。官方文档如下:
官方源码截图大概意思就是:通过(dx,dy)插入矩形。如果 dx 是正的,则两边向内移动,使矩形变窄。如果 dx 是负的,则两边向外移动,使矩形更宽。这同样适用于 dy 和顶部和底部。
实现效果图的关键代码如下:
关键代码附上源码
CSDN上传限制最少的积分是2分,这是要搞什么鬼啊。
网友评论