gpt4 book ai didi

java - 使用 Fresco 无需服务器请求即可替换图像

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

我想知道是否有一种方法可以替换 Fresco 中的图像,而无需从服务器重新加载它。我有一个应用程序,让用户修改图像,然后将新图像上传到服务器。然而,按照 Fresco 的工作方式,我需要上传新图像,从缓存中删除当前图像,然后使用新的 url 从服务器检索它,然后将其存储在缓存中。我似乎无法找到一种方法来仅使用 url 和位图作为键和值(如果可能的话)将图像插入到缓存中。

最佳答案

Fresco 目前不支持开箱即用,但您可以尝试如下操作:

// remove the image from the caches (both disk and memory)
CacheKey diskCacheKey = new SimpleCacheKey(uri.toString());
Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(diskCacheKey);
Fresco.getImagePipeline().evictFromMemoryCache(uri);

// fill the disk cache (note, memory cache will be filled automatically)
Supplier<FileInputStream> inputStreamSupplier = new Supplier<FileInputStream>() {
@Override
public FileInputStream get() {
return new FileInputStream(path);
}
};
EncodedImage encodedImage = new EncodedImage(inputStreamSupplier);
Fresco.getImagePipelineFactory().getMainBufferedDiskCache().put(diskCacheKey, encodedImage);

// re-set the image to the view
mSimpleDraweeView.setImageUri(uri);

关于java - 使用 Fresco 无需服务器请求即可替换图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857092/

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