微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何刷新ImageView的内容

我有一个带有 ImageView的屏幕,其中包含实际的个人资料图片.我可以通过用相机拍照或从SD卡中挑选照片来编辑该个人资料照片.我将新选择的个人资料图片存储在与旧的相同的路径下(我覆盖它),这是我猜的逻辑.

但是,当我将新的个人资料图片设置为我的ImageView时,它不会刷新.我必须重新启动应用程序以查看更改.

this.imageView.invalidate();

当我浏览谷歌时所有人都告诉我要做的事情但是没有,这是行不通的!那么我如何强制我的imageview加载新的个人资料图片

我在Picasso的帮助下将图像加载到ImageView中:

Picasso picasso = Picasso.with(context);

if(reload) {
    picasso.invalidate(new File(fileName));
}

RequestCreator requestCreator = picasso.load(new File(fileName));
requestCreator.into(imageView);

解决方法

Picasso缓存加载的图像以加速加载过程.这意味着如果您尝试重新加载相同的图片,则会加载缓存版本,并且不会从磁盘读取更改的文件.

您需要告诉Picasso图片已更改,并且需要通过使缓存无效来从磁盘重新加载图片.你这样做的方式是这样的:

File file = new File(fileName);
Picasso picasso = Picasso.with(context);
picasso.invalidate(file);
picasso.load(file).into(imageView);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐