【发布时间】:2015-05-01 23:07:57
【问题描述】:
我有一个带有ImageView 的屏幕,其中包含实际的个人资料图片。我可以通过用相机拍照或从 SD 卡中挑选照片来编辑该个人资料照片。我将新选择的个人资料图片存储在与旧的(我覆盖它)相同的路径下,我猜这是合乎逻辑的。
但是,当我将新的个人资料图片设置为我的 ImageView 时,它不会刷新。我必须重新启动应用才能看到更改。
this.imageView.invalidate();
当我浏览谷歌时,所有人都告诉我要这样做,但不,这不起作用!那么如何强制我的 imageview 加载新的个人资料图片?
我在毕加索的帮助下将图像加载到ImageView:
Picasso picasso = Picasso.with(context);
if(reload) {
picasso.invalidate(new File(fileName));
}
RequestCreator requestCreator = picasso.load(new File(fileName));
requestCreator.into(imageView);
【问题讨论】:
-
只需再次加载位图并将其设置为
ImageView。没有其他方法可以刷新ImageView。 -
这就是我在毕加索的帮助下所做的。
-
你应该从一开始就提到你正在使用毕加索。毕加索缓存图像。那么最有可能发生的是毕加索从缓存中加载旧图片而不是从磁盘中加载新图片。您需要像这样使缓存无效:
Picasso.with(getActivity()).invalidate(file); -
这也不是重新加载imageview的新内容
-
它适用于我,请参阅我的答案。放弃那个
if(reload) { ... },你不需要那个。
标签: android