如何通过Picasso将图像保存并读入内存/ SD卡缓存?

时间:2015-11-09 07:27:53

标签: android picasso

我在我的Android应用程序中使用Picasso。

$nameOfTheClass = "someClass";
$class = Pimcore\Model\Object\ClassDefinition::getByName($name);

当上下文发生变化时 - 它会再次下载。

所以我想知道,如何设置Picasso将图像保存到SD卡并从中读取,尽管有上下文变化?

1 个答案:

答案 0 :(得分:1)

对于缓存,我会使用OkHttp拦截器来控制缓存策略。查看OkHttp库中包含的此示例。请查看此链接square/okhttp

以下是我与毕加索一起使用的方法 -

OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.networkInterceptors().add(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Response originalResponse = chain.proceed(chain.request());
            return originalResponse.newBuilder().header("Cache-Control", "max-age=" + (60 * 60 * 24 * 365)).build();
        }
    });

    okHttpClient.setCache(new Cache(mainActivity.getCacheDir(), Integer.MAX_VALUE));
    OkHttpDownloader okHttpDownloader = new OkHttpDownloader(okHttpClient);
    Picasso picasso = new Picasso.Builder(mainActivity).downloader(okHttpDownloader).build();
    picasso.load(imageURL).into(viewHolder.image);