问题:图像变化,但不是在适当的时间.
特此CountDownTimer
类引用:
CountDownTimer 将倒计时安排到将来的某个时间,并在此过程中每隔一段时间定期通知。 公共建设者
CountDownTimer(long millisInFuture, long countDownInterval)
millisInFuture
从调用开始()到完成倒计时和调用onFinish()为止的millis数。countDownInterval
沿途接收onTick(long)回调的间隔。 来源: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;
}
}
发布于 2015-03-18 16:53:37
只需使用处理程序和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);
https://stackoverflow.com/questions/29127732
复制相似问题