还是照着hongyong的博客来学习
不过遇到几个问题,转几个圈之后会停下来,不知道为什么
先分析下代码逻辑
一个线程不断更新progress然后重绘,
当progress = 360度的时候,说明画完一个圈了
这个时候把progress置0,修改isNext
isNext实际上就是标明该画哪个颜色的圆,比如,先画红的,再画蓝的
先画一个圆,再画圆弧
似乎没问题,但是调试发现,在一段时间后,ondraw就不在调用了(postinvalidate还是会跳到这) 不知道为什么
// 画圆弧
canvas.drawArc(oval, 0, mProgress, false, mPaint);这个方法的参数是
public void drawArc(RectF oval, float startAngle, float sweepAngle,boolean useCenter, Paint paint)
- :指定圆弧的外轮廓矩形区域。
- startAngle: 圆弧起始角度,单位为度。
- sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。
- useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。
- paint: 绘制圆弧的画板属性,如颜色,是否填充等。
设置为-90度,则正好是习惯上的角度