android picasso图片下载

时间:2015-09-13 10:56:04

标签: android caching picasso

我有一个活动,其中有一个带有一些图像的对话窗口。我希望在我的活动开始时将这些图像下载到缓存中,并在出现对话框窗口时从缓存中加载它们。

我的活动代码:

for(int i=0; i<avataritemlist.size();i++){

                Picasso.with(activity_context)
                        .load(item.getpath())
                        .noFade();

            }

对话框适配器代码:

Picasso.with(mContext)
            .load(item.getpath())
            .noFade()
            .into(holder.imageView);

我希望在我的activty中缓存图像,然后在缓存中加载对话框适配器,但在我的情况下,它会在适配器中再次下载。我想强调activity_contextmContext是一样的。我做错了什么?

1 个答案:

答案 0 :(得分:0)

Picasso.with返回的默认毕加索实例使用自动memorydisk caching。它使用默认值初始化:

 •  LRU memory cache of 15% the available application RAM   

 •  Disk cache of 2% storage space up to 50MB but no less than 5MB. (Note: this is only available on API 14+ or if you are using a standalone library that provides a disk cache on all API levels like OkHttp)

 •  Three download threads for disk and network access.

默认的Picasso实例如何执行LRU内存缓存是您可能无法知道的,您所知道的只是it is a memory cache which uses a least-recently used eviction policy

但是,您可以使用Picasso.Builder创建Picasso实例,以便更好地控制图像缓存(通过磁盘)。有关如何使用max-age和stackoverflow post设置http请求标头属性Cache-Control的详细信息,请参阅此Jake Wharton's answer

另外,您可能还想尝试Glide,其语法与毕加索非常相似