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);

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...