我想做一个简单的游戏,有一个图像视图和两个按钮来猜测卡片是红色还是黑色。
我想使用一个线程,在玩家按下按钮之前每 0.1 秒,卡片就会发生变化。
这是我到目前为止使用的:
Thread timer = new Thread() {
public void run() {
while (true) {
try {
if(!isInterrupted())
sleep(100);
else
sleep(5000);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(!isInterrupted()) {
if (iv_card_to_Guess.getDrawable() == null)
iv_card_to_Guess.setImageBitmap(deck_card);
else
iv_card_to_Guess.setImageDrawable(null);
}
else {
//here need to update imageview with the actual image of the card, not just the deck or null
// for example 5 of Hearts
loadBitmap(getResourceID("img_" + numbers.get(count).toString(), "drawable", getApplicationContext()), iv_card_to_Guess);
}
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
当我按下按钮时,我打电话timer.interrupt();
该应用程序会更改实际卡片的图像,但也会更改 0.1 秒,而不是 5 秒,就像我想要的那样 :)
请问我该怎么做?