【问题标题】:Changing an Image resource更改图像资源
【发布时间】:2018-11-01 10:09:25
【问题描述】:
当我单击按钮时,我想将图像视图更改为不同的图片,等待 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(变为绿色)。
我该如何解决这个问题?
【问题讨论】:
标签:
android
android-layout
android-imageview
【解决方案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);
【解决方案2】:
您可以尝试使用 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);
}
【解决方案3】:
试试这个代码
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();