我正在尝试创建一个西蒙说游戏,以便让用户知道哪些按钮被击中我决定我想做一些像按钮点击更改背景等待一秒然后改回来它不能正常工作虽然按钮等待1秒钟点击但是drawable不会改变
我看起来像这样
view.setBackgroundResource(R.drawable.black);
try {
TimeUnit.SECONDS.sleep(5);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
view.setBackgroundResource(R.drawable.green);
答案 0 :(得分:3)
您可以使用Handler
来实现此目的。在我的示例中,我设置了5秒延迟,之后我通过view.setBackgroundResource(R.drawable.green);
更改了背景颜色。
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.setBackgroundResource(R.drawable.green);
}
}, 5000);
答案 1 :(得分:1)
您可以尝试使用CountDownTimer。
// You can change millisInFuture and countDownInterval according to your need.
long millisInFuture = 5000;
long countDownInterval = 1000;
new CountDownTimer(millisInFuture, countDownInterval) {
@Override
public void onTick(long l) {
}
@Override
public void onFinish() {
// Change your background color here
view.setBackgroundResource(R.drawable.green);
}
}.start();
答案 2 :(得分:1)
您可以使用new Handler()
尝试以下内容。
view.setBackgroundResource(R.drawable.black);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
view.setBackgroundResource(R.drawable.green);
}
}, 5000);
答案 3 :(得分:0)
尝试更改runOnUiThread中的视图背景并使视图无效。