更改图像资源
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();
当我单击一个按钮时,我想将图像视图更改为不同的图片,等待 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();