此时CountDownTimer
类引用:
的 CountDownTimer
安排倒计时,直到将来的某个时间,并在整个过程中定期发出通知。
公共建设者
CountDownTimer(long millisInFuture, long countDownInterval)
millisInFuture
从调用start()到倒计时完成并且调用onFinish()之后的未来毫秒数。
countDownInterval
接收onTick(长)回调的路径。来源:http://developer.android.com/reference/android/os/CountDownTimer.html
假设我有以下两张图片:
我希望每隔1秒换一次,
我在这里做错了什么?有人能指点我吗?
blinkingAlarm = new CountDownTimer(1000,1000) {
boolean switchImage = false;
@Override
public void onTick(long millisUntilFinished) {
if(!switchImage)
{
button1.setBackgroundResource(R.drawable.image1);
}
else if(switchImage)
{
button1.setBackgroundResource(R.drawable.image2);
}
// Flip
switchImage = (!switchImage);
}
@Override
public void onFinish() {
// Loop
blinkingAlarm.start();
}
};
该方法由
调用 @Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.button1:
blinkingAlarm.start();
break;
}
}
答案 0 :(得分:0)
只需使用handler和postDelayed而不是CountDownTimer。 在您的课程中添加以下变量:
private boolean switchImage = false;
private Handler handler;
然后使用此代码:
handler = new Handler();
Runnable changeImage = new Runnable() {
@Override
public void run() {
if(!switchImage){
button1.setBackgroundResource(R.drawable.image1);
switchImage = true;
} else {
button1.setBackgroundResource(R.drawable.image2);
switchImage = false;
}
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(changeImage, 1000);