美文网首页
Android Picasso分析

Android Picasso分析

作者: _Ryan | 来源:发表于2018-11-07 20:58 被阅读27次

Picasso是Square公司开源的一个Android平台上的图片加载框架

picasso1.png

核心类:

Picasso:负责图片下载、变换、缓存的管理器,当它收到一个图片下载请求的时候,它会创建Request并提交给Dispatcher

Dispatcher: Dispatcher会寻找对应的处理器RequestHandler,并将请求与该处理器一起提交给线程池执行

Picasso-classes-relation.png

图片加载步骤:

创建 -> 入队 -> 执行 -> 解码 -> 变化 -> 批处理 -> 完成 -> 分发 -> 显示

使用

Picasso.get().load(url).into(first_img)
  
//加载一张图片 旋转45°
Picasso.get()
        .load(URL)
        .rotate(45f)
        .placeholder(R.drawable.placeholder_disk)
        .into(imgOne);

//加载一张图片并设置一个回调接口
Picasso.get()
        .load(URL)
        .placeholder(R.drawable.placeholder_disk)
        .into(imgOne, new Callback() {

            @Override
            public void onSuccess() {

            }

            @Override
            public void onError(Exception e) {

            }
        });

//预加载一张图片
Picasso.get().load(URL).fetch();

//同步加载一张图片,注意只能在子线程中调用并且Bitmap不会被缓存到内存里.
new Thread() {
    @Override
    public void run() {
        try {
            final Bitmap bitmap = Picasso.get().load(URL).get();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}.start();

//加载一张图片旋转并且添加一个Transformation,可以对图片进行各种变化处理,例如圆形头像.
Picasso.get().load("url").rotate(10).transform(new Transformation() {
    @Override
    public Bitmap transform(Bitmap source) {
        //处理Bitmap
        return null;
    }

    @Override
    public String key() {
        return null;
    }
}).into(imgTwo);

//加载一张图片并按照指定尺寸以centerInside()的形式缩放.并设置加载的优先级为高.注意centerInside()或centerCrop()
//只能同时使用一种,而且必须指定resize()或者resizeDimen();
Picasso.get().load(URL)
        .resize(400, 400)
        .centerInside()
        .priority(Picasso.Priority.HIGH)
        .into(imgTwo);

//加载一张图片并设置tag,可以通过tag来暂定或者继续加载,可以用于当ListView滚动是暂定加载.停止滚动恢复加载.
Picasso.get().load(URL).tag(getContext()).into(imgTwo);
Picasso.get().pauseTag(getContext());
Picasso.get().resumeTag(getContext());
  

参考:

https://blog.csdn.net/chdjj/article/details/49964901

相关文章

网友评论

      本文标题:Android Picasso分析

      本文链接:https://www.haomeiwen.com/subject/jncuwxtx.html