当我单击按钮时,我想将图像视图更改为另一张图片,等待3秒钟,然后再次将其更改为另一张图片(无需再次单击)。
1单击->更改图片->等待3秒钟->更改图片。
这是我的代码:
northLight.setImageResource(R.drawable.red_and_yellow);
try {
TimeUnit.MILLISECONDS.sleep(3000);
} catch (InterruptedException e) {}
northLight.setImageResource(R.drawable.green);
在运行程序时,当我实际单击按钮时,程序将忽略第一个setImage
并将其直接更改为第二个setImage
(变为绿色)。
我该如何解决?
答案 0 :(得分:1)
您可以使用处理程序
northLight.setImageResource(R.drawable.red_and_yellow);
new Handler().postDelayed(new Runnable() {
public void run() {
// Actions to do after 3 seconds
northLight.setImageResource(R.drawable.green);
}
}, 3000);
答案 1 :(得分:0)
您可以尝试使用Handler等待并更改图像。单击按钮后,更改图像并延迟3秒运行处理程序。
//Call this method when your button is clicked
public void changeImage() {
northLight.setImageResource(R.drawable.red_and_yellow);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
northLight.setImageResource(R.drawable.green);
}
}, 3000);
}
答案 2 :(得分:0)
尝试此代码
new CountDownTimer(3000,1000){
@Override
public void onTick(long l) {
northLight.setImageResource(R.drawable.red_and_yellow);
}
@Override
public void onFinish() {
northLight.setImageResource(R.drawable.green);
}
}.start();