码迷,mamicode.com
首页 > 其他好文 > 详细

ImageView setImageURI图片不改变的问题

时间:2014-09-29 13:59:50      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   文件   sp   div   问题   

问题描述:图片文件已改变,第二次调用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图片不改变的问题

标签:style   blog   color   io   使用   文件   sp   div   问题   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!