更改图像资源

Changing an Image resource

当我单击一个按钮时,我想将图像视图更改为不同的图片,等待 3 秒,然后再次将其更改为另一张图片(无需再次单击)。

1 click -> change picture -> wait 3 seconds -> change picture.

这是我的代码:

northLight.setImageResource(R.drawable.red_and_yellow);

try {
     TimeUnit.MILLISECONDS.sleep(3000);
} catch (InterruptedException e) {}

northLight.setImageResource(R.drawable.green);

虽然我是 运行 程序,但当我实际单击按钮时,程序会忽略第一个 setImage 并将其直接更改为第二个 setImage(以绿色的)。

我该如何解决这个问题?

您可以尝试使用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);
}

你可以使用处理程序,

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

试试这个代码

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