android 自定义控件Android精选Android知识

Android RectF类的inset()方法

2017-11-01  本文已影响0人  帮忙提醒我喂鸡

最近在研究 MPAndroidChart 的源码,我去年接触到这份开源代码,刚看的时候真是和看天书一样。不久前我想自己写图表的自定义控件,发现自己真的难以写出扩展性好、灵活性高的自定义控件。于是想起来自己曾经看过的 MPAndroidChart 的代码,再把它拿出来研究研究。

研究的过程中,我发现里面有一些方法在百度上搜索不到相关的帖子,想到以后有新手玩家想搜索这个方法却搜不到是多么沮丧,于是就到Google官方文档看了这个方法,用中文写了出来,同时也鼓励新手玩家慢慢养成看官方文档的习惯。

研究源码是一件困难的事情。著名的源码的产生的过程一般是这样的:一个高手(或者是一个团队)花了好长一段时间来实现某功能需求,写代码,优化代码,进行了多次的反馈,然后进行迭代升级。想扫几遍就读懂它是不可能的。我们看源码就要有读经典书籍的心态:一次看不懂,就多看几次,看了一个月看不懂,就多看几个月,不会的知识点就把它补上。读源码可能一时之间看不到有什么用,可能读再久也看不到有什么用。但读源码应该能让我们更接近成为一个真正的程序员,而不是一个只会使用开源框架、只会复制粘贴的码农吧。

前面只是个人的一些胡思乱想的东西,下面进入正题。
先上个效果图。

效果图

红色矩形那一块区域是我自己写的一个自定义 View,在里面画了一个矩形。

关于RectF的inset()方法。官方文档如下:

官方源码截图

大概意思就是:通过(dx,dy)插入矩形。如果 dx 是正的,则两边向内移动,使矩形变窄。如果 dx 是负的,则两边向外移动,使矩形更宽。这同样适用于 dy 和顶部和底部。

实现效果图的关键代码如下:

关键代码

附上源码
CSDN上传限制最少的积分是2分,这是要搞什么鬼啊。

上一篇下一篇

猜你喜欢

热点阅读