防止Picasso获取已加载的图像,并且无法使用OkHttp2.0进行磁盘缓存

时间:2014-07-08 05:41:10

标签: android android-volley picasso okhttp

以上两者都是相关的。以下是我的案例

  1. 我正在使用Volley Library
  2. Picasso(2.3.2)加载图片
  3. 图片相当大,所以我将它们调整为尺寸300x300
  4. 但在ListView / GridView的滚动过程中,图像会再次重新加载。虽然重装时间相当小,但我不想重新加载这种性质。
  5. 所以浏览,网后我遇到了

    1. 使用OkHttpClient缓存机制

      How to implement my own disk cache with picasso library - Android?

    2. 所以我尝试将OkHttp 2.0.0用于Volley Library

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

      我认为,从OkHttp 2.0.0开始,有些内容需要改变。   所以我跟着这个而不是

      How to implement Android Volley with OkHttp 2.0?

    3. 但是现在使用方法2,Volley库将无法运行。  最后,我正在尝试使用此

      中提到的缓存

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

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

1 个答案:

答案 0 :(得分:0)

保持缓存应该如何工作的流程。不知道毕加索是因为我使用了Aquery,但只要位图(bm)需要加载'它们就应该使用相同的流程。在一些图像视图中。

流速:

如果bm是拇指做chekthm

如果bm大做cheklarge

On thmb:

如果在memcache中返回bm for load来查看

如果在filecache中从那里返回bm

在temp bm仍为null时,网络提取返回bm ,负载到相应的缓存和弹出' 4 onFullCache。

对于大型bm,使用与thmb相同的流程,只有配置缓存不会包含多少条目。

你必须在那里阻止抓取。为什么因为进程只有当bm无法从本地选项中获取时才会选择网络提取。此时你要么使用本地res的默认drawable(你的逻辑不是正确的bm),要么你必须进行网络提取。