说白了就是画两个圆。以达到最终效果。
首先自定义VIEW继承自VIEW
三只画笔,一只内圆,一只外圆,一只笔。

一些初始化的工作:


重写onMeasuse方法:

重写onDraw方法,画出两个圆以及字:

这里注意,画圆的时候,为什么要半径要减去 boardWith/2呢。 如果不减的话,画出来的圆边就会被切。
外切的矩形也是一样,左上右下,都要考虑boardWith/2的长度。就是相当于从圆描边的厚度的中间位置开始计算!
基线就不说了,都是这样算。老套路。
下面就是,不停的更新当前进度,调用 invalidata方法重绘就行了。

网友评论