概述
最近跟着扔物线的自定义View教程重新复习了一波基础,但是API这种东西如果不用很容易就忘了,趁大脑还没触发GC之前,最好的记忆方式就是撸个Demo出来。iOS上有一款个人很喜欢的简约TODO应用叫极简待办,其中它的番茄时钟交互很适合用来练手。
分析
先看下iOS的效果图长啥样
功能
一个默认黑色的圆,一个灰色的圆,随着倒计时减少,灰色圆的弧度越来越大
手指在圆圈内滑动可以调整时间
心路历程
一步步来,先画一个黑圆以及显示时间文本,传入一个时间值后,可以实现倒计时功能。实现倒计时需要用到CountDownTimer,因此只要在该类的onTick中不断重绘就行了
public void start(){
new CountDownTimer(time * 1000 + 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
time = (time * 1000 - 1000) / 1000;
textTime = time + "";
invalidate();
}
@Override
public void onFinish() {
}
}.start();