0

以上两者是相关的。以下是我的情况

  1. 我正在使用 Volley 库
  2. Picasso(2.3.2) 加载图片
  3. 图像相当大,所以我将它们调整为 300x300 的尺寸
  4. 但在 ListView/GridView 滚动期间,图像会再次重新加载。尽管重新加载时间相当短,但我不希望这种性质的重新加载。

所以浏览,网上我遇到了以下

  1. 使用 OkHttpClient 缓存机制

    如何使用毕加索库实现我自己的磁盘缓存 - Android?

  2. 所以我尝试在 Volley Library 中使用 OkHttp 2.0.0

    https://gist.github.com/JakeWharton/5616899

    我认为,从 OkHttp 2.0.0 开始,上述要点有一些需要改变的地方。所以我改为遵循这个

    如何使用 OkHttp 2.0 实现 Android Volley?

  3. 但是 Volley 库现在无法使用方法 2 运行。最后,我正在尝试使用上面提到的缓存

    https://gist.github.com/ceram1/8254f7a68d81172c1669

所以,我的问题很简单,如何不重新加载已经下载的图像。如果,我必须使用 OkHttp 2.0.0 进行磁盘缓存,我应该遵循哪些方法。

4

1 回答 1

0

保持缓存应该如何工作的流程。不知道 Picasso,因为我使用 Aquery,但只要位图(bm)需要在某些图像视图中“加载”,它们就应该使用几乎相同的流程。

流动:

如果 bm 是 thumb do chekthm

如果 bm large 做 cheklarge

在 thmb 上:

如果在 memcache 中返回 bm 以供加载查看

如果在文件缓存中从那里返回 bm

在临时 bm 仍然为空的情况下,网络获取以返回 bm ,并加载到相应的缓存并使用 'ejects' 4 onFullCache。

对于大 bm ,使用与 thmb 相同的流程,仅配置缓存不包含那么多条目。

您无需阻止 fetch 。为什么,因为当 bm 不能从本地选项中使用时,该过程才到达网络提取的选择。那时,您要么使用本地资源的默认可绘制对象(对于您的逻辑不正确的 bm),要么您必须进行网络获取。

于 2014-07-08T08:49:00.483 回答