参考了:https://github.com/yanzhenjie/CircleTextProgressbar
但项目需求此开源项目满足不了,在此基础上,需要修改,原作者只是把此当成进度条,故写死了100,
我修改了可以设置任意数值,可以当成倒计时,进度条都可,100秒倒计时,60秒倒计时,或100%进度条
/** * 设置进度。 * * @param progress 进度。 */ public void setMaxProgress(int maxProgress) { this.maxProgress = validateProgress(maxProgress); invalidate(); }
2.关键是画圆时,计算圆分成多少份,这里360/maxProgress,然后当前进度progress相乘
@Override protected void onDraw(Canvas canvas) { canvas.drawArc(mArcRect, 0, 360 * progress / maxProgress, false, mPaint); }
上效果:
修改后的代码在附件