2017-02-26 75 views

回答

3

該代碼做你所說的。你說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是你應該複製

+0

這不是我的意思。我的問題是這個圈子在45秒內沒有完成一個完整的循環。我現在會用GIF更新這個問題。 – Me123

+0

它在45秒內沒有完成一個完整的循環,因爲你告訴它從4分5秒倒數。或240秒。當您的週期請求總共爲245秒時,它無法在45秒內完成一個週期。 – Zoe

+0

GIF沒有解釋任何東西比圖像 – Zoe

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 
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();