Fre*_*dkr 14 java android thread-sleep
让我的程序进入睡眠时遇到一些问题我试图做的是当按下btnStart时firs随机设置图片到12 ImageButtons然后我希望它暂停5秒然后将第一个ImageButton更改为另一张图片
我的代码看起来像这样,现在当按下按钮时它会立即暂停...
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Collections.shuffle(pic);
int time=1;
press=true;
pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
pic.get(1).setImageDrawable(getResources().getDrawable(R.drawable.memgreen));
pic.get(2).setImageDrawable(getResources().getDrawable(R.drawable.memred));
pic.get(3).setImageDrawable(getResources().getDrawable(R.drawable.memred));
pic.get(4).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
pic.get(5).setImageDrawable(getResources().getDrawable(R.drawable.memblue));
pic.get(6).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
pic.get(7).setImageDrawable(getResources().getDrawable(R.drawable.memwhite));
pic.get(8).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
pic.get(9).setImageDrawable(getResources().getDrawable(R.drawable.mempurple));
pic.get(10).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));
pic.get(11).setImageDrawable(getResources().getDrawable(R.drawable.memyellow));
try {
Thread.sleep(5000);
pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
Cra*_*igy 24
好吧,如果您希望UI保持响应,则无法阻止UI线程Thread.sleep.
创建一个新线程,然后将其休眠.在睡眠之后,运行用于更改UI线程上的可绘制视图的方法
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
pic.get(0).setImageDrawable(getResources().getDrawable(R.drawable.coin));
}
});
}
}).start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64788 次 |
| 最近记录: |