gpt4 book ai didi

android - 为什么 ImageView 不能在 SystemClock.sleep() 之前更新

转载 作者:行者123 更新时间:2023-11-29 18:11:34 26 4
gpt4 key购买 nike

我想在翻转旧图像后的 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);

但是没有效果?那么,我做错了什么吗?

最佳答案

您正在阻塞 UI 线程。因此在 sleep 命令期间,屏幕不会刷新。您需要的是安排对更改图像资源的函数的非阻塞延迟调用。这是一个修改后的代码,可以做这样的事情:

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);

关于android - 为什么 ImageView 不能在 SystemClock.sleep() 之前更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10368919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com