参考了: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);
}
上效果:
修改后的代码在附件