gpt4 book ai didi

android - 覆盖文件时从同一文件加载错误图像

转载 作者:行者123 更新时间:2023-11-30 01:44:20 25 4
gpt4 key购买 nike

我在保存图像文件、更新它以及通过 Gilde 库将其加载到 ImageView 中时遇到一些问题。

基本上,我正在向缓存目录写入一个名为 tmp_photo.jpg 的文件。我覆盖了这个文件,这样我以后就不会得到多个需要清理的文件。

这是第一次一切正常,正确的图像显示在 ImageView 中。第二次,即使我已经覆盖了文件并且应该加载新图像,旧图像仍显示在 ImageView 中。

这是我显示图像的方式:

Glide.with(getActivity())
.load(filePath)
.error(R.drawable.error_holder)
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(ivDisplayPhoto);

如果我使用任何文件资源管理器应用程序导航到该文件,该文件就会更新,并且我在打开文件时实际上可以看到新照片。我注意到的一件事是缩略图没有更新,但我不关心它,因为我不直接使用它。

谁能帮我理解发生了什么?谢谢。

乐:

我设法通过一个小技巧避免了这种情况,但我认为这不是最好的解决方案。我仍在寻找如何直接使用 Glide 执行此操作。这是我现在所做的:

// Invalid what was previously shown in the ImageView
ivDisplayPhoto.setImageURI(null);
ivDisplayPhoto.invalidate();

// Hide the progress & display the image
UiUtils.crossFade(ivDisplayPhoto, imageProgress);

livecastCover.post(new Runnable() {
@Override
public void run() {
ivDisplayPhoto.setImageURI(fileUri);
}
});

我直接使用 Uri,而不是 String 路径。

最佳答案

我能够通过在使用 Glide 时向缓存添加签名来解决此问题。一个显示基于已保存文件的 uri 将签名设置为某些东西的示例对我有用(你的可能需要不同的东西):

                    Glide.with(context.getApplicationContext())
.using(new FirebaseImageLoader())
.load(storageReference)
.signature(new StringSignature(uri.toString()))
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(placeHolder)
.into(imageView);
} catch (IllegalArgumentException e) {
Timber.e(e);
}

关于android - 覆盖文件时从同一文件加载错误图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com