我有两个进度条,一个与我的计时器同步,第二个应该在总时间内的各个时段运行。也就是说,如果总时间为8分钟,则第一个进度条将运行8分钟。第二个进度条应根据以下if语句运行:
private void startTimer()
{
millisInFuture = mTimeLeftInMillis;
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mTimeLeftInMillis = millisUntilFinished;
updateCountDownText();
long millisPassed = millisInFuture - mTimeLeftInMillis;
progress = (int) (millisPassed * 100 / millisInFuture);
pb.setProgress(progress);
pb2.setProgress(0);
////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////
//Key: 60 sec
if(millisInFuture == 480000) {
if (millisPassed <= 60000) {
Animation animation = AnimationUtils.loadAnimation(tool1mode1.this, R.anim.fade_in);
stepupimage.setAnimation(animation);
progress2 = (int) (millisPassed * 100 / 60000);
pb2.setProgress(progress2);
if(millisPassed == 60000)
{
pb2.setProgress(0);
}
} else if (millisPassed > 60000 && millisPassed <= 180000) {
Animation animation = AnimationUtils.loadAnimation(tool1mode1.this, R.anim.fade_in);
stepdownimage.setAnimation(animation);
progress2 = (int) (millisPassed * 100 / 120000);
pb2.setProgress(progress2);
代码中由反斜杠分隔的部分就是有问题的部分。大的if语句表示8分钟。其中的第一个if语句表示8分钟中的第一个1分钟。我希望后面的else if语句重新启动第二个progressbar并运行2分钟。然后,它将重新启动并运行1分钟,然后再次重新启动并运行1分钟,依此类推,直到8分钟结束。
我相信问题出在else if语句中的millispassed值上,但是我不知道用什么来替换它以使进度条重新启动并运行2分钟。
注:
pb是第一个进度条
pb2是第二个进度条
暂无答案!
目前还没有任何答案,快来回答吧!