栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在毕加索中使用磁盘缓存?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在毕加索中使用磁盘缓存?

这就是我所做的。效果很好。

首先将OkHttp添加到app模块的gradle构建文件中:

compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.squareup.okhttp3:okhttp:3.10.0'compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'

然后进行课堂扩展 Application

import android.app.Application;import com.jakewharton.picasso.OkHttp3Downloader;import com.squareup.picasso.Picasso;public class Global extends Application {    @Override    public void onCreate() {        super.onCreate();        Picasso.Builder builder = new Picasso.Builder(this);        builder.downloader(new OkHttp3Downloader(this,Integer.MAX_VALUE));        Picasso built = builder.build();        built.setIndicatorsEnabled(true);        built.setLoggingEnabled(true);        Picasso.setSingletonInstance(built);    }}

如下所示将其添加到清单文件中:

<application        android:name=".Global"        .. ></application>

现在,像往常一样使用毕加索。没有变化。

编辑:

如果只想使用缓存的图像。这样调用库。我注意到,如果不添加networkPolicy,即使已缓存图像也不会在完全脱机的开始中显示。下面的代码解决了这个问题。

Picasso.with(this) .load(url) .networkPolicy(NetworkPolicy.OFFLINE) .into(imageView);

编辑#2

上面的代码的问题是,如果您清除缓存,毕加索将继续在缓存中脱机寻找它并失败,下面的代码示例将查看本地缓存,如果找不到离线,它将联机并补充缓存。

Picasso.with(getActivity()).load(imageUrl).networkPolicy(NetworkPolicy.OFFLINE).into(imageView, new Callback() {    @Override    public void onSuccess() {    }    @Override    public void onError() {        //Try again online if cache failed        Picasso.with(getActivity())     .load(posts.get(position).getImageUrl())     .error(R.drawable.header)     .into(imageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() {     Log.v("Picasso","Could not fetch image"); }        });    }});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367465.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号