public class CountdownView extends View {
// 控件宽
private int width;
// 控件高
private int height;
// 刻度盘半径
private int dialRadius;
// 小时刻度高
private float hourScaleHeight = dp2px(6);
// 分钟刻度高
private float minuteScaleHeight = dp2px(4);
// 定时进度条宽
private float arcWidth = dp2px(6);
// 时间 - 分
private int time = 0;
// 刻度盘画笔
private Paint dialPaint;
// 时间画笔
private Paint timePaint;
// 是否移动
private boolean isMove;
// 当前旋转的角度
private float rotateAngle;
// 当前的角度
private float currentAngle;
// 时间改变监听
private OnCountdownListener onCountdownListener;
public CountdownView(Context context) {
this(context, null);
}
public CountdownView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CountdownView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
// 刻度盘画笔
dialPaint = new Paint();
dialPaint.setAntiAlias(true);
dialPaint.setColor(Color.parseColor("#94C5FF"));
dialPaint.setStyle(Paint.Style.STROKE);
dialPaint.setStrokeCap(Paint.Cap.ROUND);
// 时间画笔
timePaint = new Paint();
timePaint.setAntiAlias(true);
timePaint.setColor(Color.parseColor("#94C5FF"));
timePaint.setTextSize(sp2px(33));
timePaint.setStyle(Paint.Style.STROKE);
}
...
}
来源: https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247489596&idx=1&sn=e1baa364dfc9bcda26eca5c5db99d029