我正在尝试创建倒计时。我不明白我究竟能做多少倒计时。有人可以帮忙吗?
答案 0 :(得分:4)
代码完成你所说的。你在onStart中说:
end.add(Calendar.MINUTE, 4);
end.add(Calendar.SECOND, 5);
告诉系统您希望倒计时从4分4秒开始。相反,做:
end.add(Calendar.SECOND, 45);
修改强>
花了一段时间才明白你的意思。首先,转到github并将TickTockView复制到您自己的项目中。删除对原始项目的依赖项。打开文件并在onDraw中更改:
if (mCircleDuration == DURATION_TOTAL && mStartTime != null) {
long totalTime = mEndTime.getTimeInMillis() - mStartTime.getTimeInMillis();
float percentage = (((float) mTimeRemaining) / ((float) totalTime));
angle = 360f * percentage;
}
为:
if (mCircleDuration == DURATION_TOTAL && mStartTime != null) {
long totalTime = mEndTime.getTimeInMillis() - mStartTime.getTimeInMillis();
float percentage = (((float) mTimeRemaining) / ((float) 45000));//45000(ms) = 45 seconds
angle = 360f * percentage;
}
在定义了圆圈的xml文件中,添加:
app:tickCircleDuration="total_time"
通过这样做,您只需要在TickTockView中更改onDraw中的totalTime。请记住更新XML文件中的包名称以指向保存文件的位置,而不是原始项目。
作为参考,this是您应该复制的文件
答案 1 :(得分:2)
好方法是使用Android提供的CountDownTimer类来及时向下计数。我最近在游戏中使用它并且使用简单。首先你
CountDownTimer timer = new CountDownTimer(45000, 1000) {
// 45000 milliseconds countdown and 1000 milliseconds decrement at each tick.
public void onTick(long millisUntilFinished) {
//you can change your UI here based on time
}
public void onFinish() {
// you can define something to happen when timer ends.
}
};
timer.start();
答案 2 :(得分:1)
将以下代码更改为
Calendar end = Calendar.getInstance();
end.add(Calendar.MINUTE, 4);
end.add(Calendar.SECOND, 5);
进入
Calendar end = Calendar.getInstance();
end.add(Calendar.MINUTE, 0);//O minute
end.add(Calendar.SECOND, 45);//45 second