0

我有一个关于 android fresco 库的问题。你们知道当文件保存在缓存中时如何获取回调吗?通常,我们可以从缓存中获取文件:

ImageRequest imageRequest= ImageRequest.fromUri(url);
CacheKey cacheKey= DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest);
BinaryResource resource = ImagePipelineFactory.getInstance().getMainDiskStorageCache().getResource(cacheKey);
File file=((FileBinaryResource)resource).getFile();

但是,如果我把它放在 onCreate() 函数中,它会崩溃,因为文件还没有在缓存中。你们知道壁画保存完成后我是如何得到回调的吗?是数据订阅者吗?你们能举个例子吗?我阅读了文档,但我无法弄清楚。

谢谢。

4

1 回答 1

0

我是 Fresco 团队的一员,也许可以提供帮助。请参阅我们的文档,了解如何正确获取编码的图像字节。有一个如何获取InputStream编码图像的代码示例(这是存储在缓存中的图像)。然后您可以直接使用这些字节,或者如果您需要 aFile以便将其传递到其他地方,您应该创建自己的文件并将返回的字节存储在其中。没有其他安全的方法来处理缓存的图像,因为您无法保证 Fresco 不会在任何时候驱逐(删除)缓存文件。

于 2015-12-03T21:48:56.060 回答