我希望在翻转旧图像之后的3秒内在ImageView中显示其他图像。代码:
OnClickListener oc = new OnClickListener() {
@Override
public void onClick(View v) {
ImageView iv = (ImageView)v;
iv.setImageResource(img2_id);
SystemClock.sleep(3000);
iv.setImageResource(img1_id);
}
}
myImageView.setOnClickListener(oc);
但它不起作用?那么,我做错了吗?
答案 0 :(得分:3)
您正在阻止UI线程。因此,在睡眠命令期间,屏幕将不会刷新。您需要的是为更改图像资源的函数安排非阻塞延迟调用。这是一个修改过的代码,可以做这样的事情:
Handler mHandler = new Handler(); /*handler declared in your Activity thread, I assume*/
OnClickListener oc = new OnClickListener() {
@Override
public void onClick(View v) {
ImageView iv = (ImageView)v;
iv.setImageResource(img2_id);
mHandler.postDelayed(new Runnable(){
public void Run(){
iv.setImageResource(img1_id);
}
},3000);
}
}
myImageView.setOnClickListener(oc);