Picasso使用学习(二)

接之前高级用法部分继续学习Picasso


自定义Picasoo

  1. 创建Picasso内部类Builder

    Picasso.Builder builder =new Picasso.Builder(MainActivity.this);

  2. 通过builder去更改picasso中默认的一些配置

    • Downloader

    如果你想更换默认的Downloader,你可以通过Picasso.Builder调用.downloader(Downloader downloader),传入一个实现Downloader的实现类,比如OkHttpDownloader

    • RequestHandler

    如果你习惯于一个自定义URI的形式(内容提供者)进行图片访问,这里会提供一个很强大的工具,Request Handlers,当你实现了你的自定义RequestHandler后,只要用builder调用addRequestHandler()就可以了

    • MenoryCache

    如果你不满足系统默认的15%的可用空间的内存缓存大小,可以根据Picasso.Builder来自定义设置。

    以设置RequestHandler为例

    public class LeeRequest extends RequestHandler {
    
    Context mContext;
    public LeeRequest(Context context) {
        mContext=context;
    }
    
    private static final String LEE_RECIPE_SCHEME = "cheese";
    @Override
    public boolean canHandleRequest(Request data) {
        // TODO: 2017/4/10 判断当前的请求是否是自定义的URI
        return LEE_RECIPE_SCHEME.equals(data.uri.getScheme());
    }
    
    @Override
    public Result load(Request request, int networkPolicy) throws IOException {
        // TODO: 2017/4/10 验证当前uri可以进行加载
        // TODO: 2017/4/10 我们可以进行网络请求或者本地加载,然后返回结果
        String imagekey =request.uri.getHost();
        Bitmap bitmap;
        if(imagekey.equals("lijing")){
            bitmap= BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.user_icon);
        }else {
            bitmap =BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.ic_launcher);
        }
        return new Result(bitmap, Picasso.LoadedFrom.DISK);
    }
    }
  3. 用我们的builder创造picasso对象并将其变成全局使用,就可以用我们的自定义picasso进行加载工作了。

    Picasso.Builder builder = new Picasso.Builder(MainActivity.this);
    builder.addRequestHandler(new LeeRequest(MainActivity.this));
    Picasso newpicasso = builder.build();
    newpicasso.load("cheese://lijing")
          .into(imag);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值