如何在還剩 5 秒的時間結束時執行此操作。
這是計時器還剩 5 秒時我想要執行的操作的代碼:
mTextViewCountDown.setTextColor(Color.RED);
zooming_second = AnimationUtils.loadAnimation(Level1.this, R.anim.watch_zoo);
mTextViewCountDown.startAnimation(zooming_second);
soundPlay(watch);
在這種方法中:
//variable start
private static final long START_TIME_IN_MILLIS = 60000;
private TextView mTextViewCountDown;
private CountDownTimer mCountDownTimer;
private boolean mTimerRunning;
private long mTimeLeftInMillis = START_TIME_IN_MILLIS;
//variable end
private void startTimer() {
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
mTimeLeftInMillis = millisUntilFinished;
int minutes = (int) (mTimeLeftInMillis / 1000) / 60;
int seconds = (int) (mTimeLeftInMillis / 1000) % 60;
String timeLeftFormatted = String.format(Locale.ENGLISH, "d:d", minutes, seconds);
mTextViewCountDown.setText(timeLeftFormatted);
mTimerRunning = true;
}
@Override
public void onFinish() {
mTimerRunning = false;
TimeOutDialog();
soundPlay(time_out_sound);
mediaPlayer1.stop();
tadam_false.stop();
tadam_true.stop();
}
}.start();
}
private void pauseTimer () {
mCountDownTimer.cancel();
mTimerRunning = false;
}
uj5u.com熱心網友回復:
內部onTick(long)方法只需檢查還剩多少秒。如果是五,觸發你的動作。
編輯
我擊中正確時間的方法是這樣的:
if (Math.abs(mTimeLeftInMillis - 5000) < 100) {
// start the animation
}
這將避免問題,if (mTimeLeftInMillis == 5000)因為它給了它一些緩沖。之所以需要它,是因為它不會在 5000 毫秒時觸發。
uj5u.com熱心網友回復:
謝謝!我是這樣做的:
if (mTimeLeftInMillis <= 6000){
mTextViewCountDown.setTextColor(Color.RED);
zooming_second = AnimationUtils.loadAnimation(Level1.this,
R.anim.watch_zoo);
mTextViewCountDown.startAnimation(zooming_second);
soundPlay(watch);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/451906.html
