首页 > 代码库 > ImageView setImageURI图片不改变的问题
ImageView setImageURI图片不改变的问题
问题描述:图片文件已改变,第二次调用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图片不改变的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。