imageview问题

milo1224 2014-08-28 11:07:54
我在程序中用到imageview
Bitmap bm = BitmapFactory.decodeFile(path[j]); 
imageView.setImageBitmap(bm);

try {
Thread.currentThread().sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}

在后面加了一个延时,显示5秒后处理其他东西,按理应该是先显示图片然后调用5秒的延时,但是现在为什么是先5秒延时后才显示图片?
...全文
180 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
milo1224 2014-08-29
  • 打赏
  • 举报
回复
引用 8 楼 davidleen29 的回复:
Bitmap bm = BitmapFactory.decodeFile(path[j]); imageView.setImageBitmap(bm); imageView.postDelay(new Runnable(){ public void run() { //这里加上你要做的事情 Toast.makeText().... } },5000); 这就是你要的结果。 try { Thread.currentThread().sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); }
为什么加到程序中根本没有反应,只有try放进去才停顿,但是图片不显示
老科达 2014-08-29
  • 打赏
  • 举报
回复
try 后面的请无视。
老科达 2014-08-29
  • 打赏
  • 举报
回复
Bitmap bm = BitmapFactory.decodeFile(path[j]); imageView.setImageBitmap(bm); imageView.postDelay(new Runnable(){ public void run() { //这里加上你要做的事情 Toast.makeText().... } },5000); 这就是你要的结果。 try { Thread.currentThread().sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); }
milo1224 2014-08-29
  • 打赏
  • 举报
回复
引用 6 楼 YKDSea 的回复:
[quote=引用 5 楼 milo1224 的回复:] [quote=引用 4 楼 YKDSea 的回复:] [quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote]
引用 4 楼 YKDSea 的回复:
[quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote] 嗯,很多基础都不是很懂,现在有点急,能先告诉我这里怎么改才行么[/quote] http://developer.android.com/reference/android/os/Handler.html 自己看吧,花不了几分钟[/quote] 用handler跟没用一样,无法延时的
milo1224 2014-08-28
  • 打赏
  • 举报
回复
引用 1 楼 YKDSea 的回复:
不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢
lionfresh 2014-08-28
  • 打赏
  • 举报
回复
楼上正解....
sky-Z 2014-08-28
  • 打赏
  • 举报
回复
不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
sky-Z 2014-08-28
  • 打赏
  • 举报
回复
引用 5 楼 milo1224 的回复:
[quote=引用 4 楼 YKDSea 的回复:] [quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote]
引用 4 楼 YKDSea 的回复:
[quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote] 嗯,很多基础都不是很懂,现在有点急,能先告诉我这里怎么改才行么[/quote] http://developer.android.com/reference/android/os/Handler.html 自己看吧,花不了几分钟
milo1224 2014-08-28
  • 打赏
  • 举报
回复
引用 4 楼 YKDSea 的回复:
[quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote]
引用 4 楼 YKDSea 的回复:
[quote=引用 3 楼 milo1224 的回复:] [quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊[/quote] 嗯,很多基础都不是很懂,现在有点急,能先告诉我这里怎么改才行么
sky-Z 2014-08-28
  • 打赏
  • 举报
回复
引用 3 楼 milo1224 的回复:
[quote=引用 1 楼 YKDSea 的回复:] 不是这样搞的,你要理解下draw的动作不是说你操作了某个元素后,就立刻去draw了,操作完毕,只是发送了一个message给activity去draw,你这样直接sleep就是阻塞了draw的message的执行,所以最终就是看到5s延迟后才能看到图片。 要达到你的效果,把sleep那边改成用handler发送一个延迟5s的message,在message的处理中去把imageview hide掉。
用handler产生延时怎么做的,为什么不会阻塞呢[/quote] 发送延迟的消息,不是用handler去延时。 你对基本概念都很陌生,还是先去学习学习吧,磨刀不误砍柴功啊

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧