首页 > 其他 > 详细

ImageView setImageURI图片不改变的问题

时间:2014-09-29 12:17:41      阅读:355      评论:0      收藏:0      [点我收藏+]

问题描述:图片文件已改变,第二次调用ImageView.setImageURI时无法更新图片

分析:setImageURI方法中对uri进行了缓存,由于第一次加载过了该uri的资源,即使该文件内容改变了,判断中仍然会使用之前加载的。

 1     public void setImageURI(Uri uri) {
 2         if (mResource != 0 ||
 3                 (mUri != uri &&
 4                  (uri == null || mUri == null || !uri.equals(mUri)))) {
 5             updateDrawable(null);
 6             mResource = 0;
 7             mUri = uri;
 8 
 9             final int oldWidth = mDrawableWidth;
10             final int oldHeight = mDrawableHeight;
11 
12             resolveUri();
13 
14             if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {
15                 requestLayout();
16             }
17             invalidate();
18         }
19     }

 

解决办法:

1、使用不同的文件名(不同的URI)

2、使用setImageBitmap的方式代替

1 Bitmap bmp;
2 try {
3     bmp = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.fromFile(file));
4     iv.setImageBitmap(bmp); 
5 } catch (FileNotFoundException e) {
6 } catch (IOException e) {
7 }

ImageView setImageURI图片不改变的问题

原文:http://www.cnblogs.com/anee/p/3999864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!