如何进行倒计时?

时间:2017-02-26 15:52:12

标签: java

我正在尝试创建倒计时。我不明白我究竟能做多少倒计时。有人可以帮忙吗?

3 个答案:

答案 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