首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >毕加索-仅访问内存缓存

毕加索-仅访问内存缓存
EN

Stack Overflow用户
提问于 2015-03-30 06:34:06
回答 1查看 1.4K关注 0票数 1

我正在写一个画廊视图,我有两组图像:低质量和高质量。

在图库活动中,图像一次显示一个。我首先显示低质量的图像,然后显示高质量的图像(就地)。

低质量的图像已经在前一个屏幕中被访问过,并且应该在内存中预先缓存。我想要做的是只访问内存中的缓存-然后转移到高质量的图像上(不管是否加载了低质量的图像)。

然后一切照常进行,如果需要的话,毕加索可以下载高质量的图片。

同时使用NetworkPolicy.NO_CACHENetworkPolicy.NO_STORENetworkPolicy.OFFLINE能实现我想要的效果吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-15 15:59:55

你现在可能已经弄明白了,但对于其他登陆这里的人来说-是的,你当然可以。

代码语言:javascript
运行
复制
Picasso.with(context)
    .load(smallImageUrl)
    .networkPolicy(NetworkPolicy.OFFLINE, NetworkPolicy.NO_CACHE)
    .into(imageView, new Callback() {          
        @Override
            public void onSuccess() {
            Picasso.with(context).load(largeImageUrl).into(imageView);
        }

        @Override
            public void onError() {
            Picasso.with(context).load(largeImageUrl).into(imageView);
        }
});

(为简洁起见,请原谅不遵守DRY原则)

因此,NetworkPolicy.OFFLINE会阻止它尝试从网络获取数据,而NetworkPolicy.NO_CACHE则会阻止检查磁盘缓存(这是来自OkHttpHttpUrlConnection的网络缓存,具体取决于您使用的是什么)。

我也推荐毕加索使用后者,因为它通常和内存缓存一样快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29335743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档