为什么 ImageView 无法在 SystemClock.sleep() 之前更新

2024-04-15

我想在翻转旧图像后 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 线程。因此在睡眠命令期间,屏幕不会刷新。您需要的是安排一个对更改图像资源的函数的非阻塞延迟调用。这是一个修改后的代码,可以完成这样的事情:

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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 ImageView 无法在 SystemClock.sleep() 之前更新 的相关文章

随机推荐

  • 如何在 Windows 的 Java 中启用小型转储

    我不断收到并看到此消息 无法写入核心转储 Windows 客户端版本默认不启用小型转储 所以我需要知道 如何在 Java 中启用小型转储 在 Windows 计算机上 可选 一旦获得小型转储 如何解释它 我试图找到这两个问题的答案 但我发现
  • ASP.NET vNext 全局配置访问

    正确 推荐的访问方式是什么config jsonASP NET vNext 中的文件 或存储配置的其他位置 In the Startup类 我像这样设置配置 public class Startup public IConfiguratio
  • 重置本地git仓库

    几天前 我在 Github 上创建了一个存储库 然后按照步骤将我现有的解决方案添加到其中 我不知道我做错了什么 但是经过一些随机的 git add 命令等等之后 我现在在 Windows 的 github 中收到消息 failed to s
  • 字典和对

    在 R 中 我想知道我是否可以有一本字典 在某种意义上像 python 其中我有一对 i j 作为具有相应整数值的键 我还没有看到一种干净或直观的方法来构建它R 我的字典的视觉效果是 1 2 gt 1 1 3 gt 3 1 4 gt 4 1
  • 使用 Django、webpack、reactjs、react-router 解耦前端和后端

    我正在尝试在项目中解耦我的前端和后端 我的前端由以下组成reactjs和路由将完成react router 我的后端如果做成形式Django我计划使用前端对 Django 进行 API ajax 调用 现在我不确定如何让这两端正确地相互通信
  • 屏幕旋转后,findFragmentById() 返回一个片段,即使布局内没有这样的 ID

    我有两种方向的一种布局 1 个横向和 1 个纵向 layout land main xml有两个片段
  • HTML5 音频缓冲区卡住

    我使用 HTML5 webkitAudioContext 使用以下代码获取用户麦克风的实时级别 var liveSource function getLevel var context new webkitAudioContext navi
  • 带参数的 C# ReportViewer 本地报表

    大家下午好 过去 2 周的大部分时间我都在寻求有关 C WinForm 应用程序问题的帮助 我有一个表单 其中有一个 DataGridView 显示从数据库中提取的详细信息 当用户双击该网格中的一行时 代码从 CustomerID 列中获取
  • 重新实例化列表或调用clear()的更好做法

    使用 Java 1 6 是在 List 上调用 clear 方法更好还是只是重新实例化引用更好 我有一个 ArrayList 其中填充了未知数量的对象 并定期 刷新 处理对象并清除列表 一旦刷新 列表就会再次填满 刷新是随机发生的 列表中的
  • 如何检查 CGPoint 是否已初始化?

    我想最初将 CGPoint 属性设置为特定点 屏幕中间 随后其他方法可能希望更改此属性 我的想法是如果 getter 中为空则初始化它 但我收到消息 invalid argument type struct CGPoint to unary
  • 使用 onclick 调用 Javascript 函数[重复]

    这个问题在这里已经有答案了 我对这段代码有疑问 当我单击按钮时 它应该执行 hello 功能并打开警报 但它不起作用 function hello alert hi document getElementById one onclick h
  • 在 DataFrame 索引中查找标签位置

    我有一个熊猫数据框 import pandas as pnd d pnd Timestamp 2013 01 01 16 00 dates pnd bdate range start d end d pnd DateOffset days
  • 检测何时从单元格本身中选择自定义单元格?

    我创建了一个自定义UITableViewCell 以及故事板设计器中用于布局的 XIB 我了解父表视图如何通过触发通知单元格选择didSelectRowAtIndexPath 但我似乎无法弄清楚如何捕获单元格本身内的单元格选择 有人能在这里
  • HttpUtility.UrlEncode 是否符合“x-www-form-urlencoded”的规范?

    Per MSDN http msdn microsoft com en us library ms525738 aspx URLEncode 转换字符如下 空格 转换为加号 非字母数字字符将转义为其十六进制表示形式 与以下类似 但不完全相同
  • WebRTC 局域网内是否需要 STUN 服务器?

    我使用Webrtc开发了一个p2p视频聊天 我知道需要 STUN 或 TURN 服务器来识别 NAT 后面的公共 IP 目前正在使用 Google 的 STUN 服务器 我的应用程序安装在连接到 LAN 的服务器上 但无法访问互联网 我是否
  • PHP gzuncompress 出现文件读写错误

    我有一个函数可以跟踪脚本中发生的事件 为了有效地利用我的资源 我决定压缩它生成的数据 但是 我不断收到此错误 Unknown error type 2 gzuncompress function gzuncompress data erro
  • Javascript 删除事件监听器不工作

    我有以下代码来添加事件监听器 area addEventListener click function event app addSpot event clientX event clientY app addFlag 1 true 它按预
  • 如何防止全景图在 Windows Phone 7 应用程序中从最后一项滚动到第一项

    是否可以防止当用户查看最后一个 PanoramaItem 时 他可以进一步向右滚动 返回到第一个 PanoramaItem 反之亦然 防止通过向左滑动从第一个滚动到最后一个 我问这个是因为在我的应用程序中我有一个只有 2 个 Panoram
  • 将基本 Access 查询条件表示为正则表达式

    我熟悉 Access 的查询和过滤条件 但我不确定如何将类似的语句表达为正则表达式模式 我想知道是否有人可以帮助将他们与我理解的一些简单示例联系起来 如果我使用正则表达式来匹配 Access 等字段 我将如何表达以下语句 示例与此中找到的示
  • 为什么 ImageView 无法在 SystemClock.sleep() 之前更新

    我想在翻转旧图像后 3 秒内在 ImageView 中显示其他图像 代码 OnClickListener oc new OnClickListener Override public void onClick View v ImageVie