美文网首页Android架构
Picasso源码分析

Picasso源码分析

作者: jacky123 | 来源:发表于2016-07-01 10:40 被阅读30次

一张图片加载可以分为以下几步:
创建->入队->执行->解码->变换->批处理->完成->分发->显示(可选)

涉及到的设计模式
1.单例
2.Builder
3.责任链模式

static BitmapHunter forRequest(Picasso picasso, Dispatcher dispatcher, Cache cache, Stats stats,
    Action action) {
  Request request = action.getRequest();
  List<RequestHandler> requestHandlers = picasso.getRequestHandlers();

  //从requestHandlers中检测哪个RequestHandler可以处理这个request,如果找到就创建
  //BitmapHunter并返回.
  for (int i = 0, count = requestHandlers.size(); i < count; i++) {
    RequestHandler requestHandler = requestHandlers.get(i);
    if (requestHandler.canHandleRequest(request)) {
      return new BitmapHunter(picasso, dispatcher, cache, stats, action, requestHandler);
    }
  }

  return new BitmapHunter(picasso, dispatcher, cache, stats, action, ERRORING_HANDLER);
}

  1. private Downloader downloader;
    此对象是用来下载网络上的图片
  • private Cache cache;
    cache对象把图片资源缓存在内存当中,内存容量是有大小限制的,但超过限制的时候,会消除最老的图片资源
    LinkedHashMap<String, Bitmap>中保存Bitmap的一个对象引用。
  • private ExecutorService service;
    线程池,用来下载图片和解析图片的。
  • private RequestTransformer transformer;
    对图片资源进行变换操作。
  • Stats stats
    状态通知中心,通知状态的完成情况。
  • Dispatcher dispatcher
    操作管理中心,可以用来管理操作的执行,可以取消操作。
    把他们集合起来,就是
    return new Picasso(context, dispatcher, cache, listener, transformer, stats,
    indicatorsEnabled, loggingEnabled);

Picasso源代码分析

相关文章

  • Picasso源码阅读笔记

    一、Picasso简介 Picasso是Square出品的图片下载、缓存库。 二、Picasso源码分析 使用示例...

  • Glide源码(一)

    Picasso,Glide,Fresco对比 上一篇我们分析了Picasso,这一篇我们来分析Glide源码的调用...

  • Picasso中的多线程

    Picasso的使用及源码提交请求流程网上都已经很多了,本篇只分析Picasso中多线程相关 Picasso的线程...

  • Picasso源码分析

    Picasso是一个由Square公司开源的强大的Android图片下载缓存库,仅仅只需要一行代码就可以实现图片的...

  • Picasso源码分析

    涉及到的设计模式1.单例2.Builder3.责任链模式 private Downloader downloade...

  • Picasso源码分析

    一 介绍 Square公司开源的图片加载库。优点是功能还算完善,能满足基本的图片加载需求,使用简单,体量轻易推倒。...

  • Picasso源码分析

  • Picasso源码分析

    源码基于Picasso 2.5.2。 一,概括 从Picasso最简单的调用来一观Picasso的整体流程。给个图...

  • Picasso源码完全解析(二)--Picasso实例的创建

    Picasso源码完全解析(一)--概述 Picasso源码完全解析(二)--Picasso实例的创建 Picas...

  • Picasso源码完全解析(一)--概述

    Picasso源码完全解析(一)--概述 Picasso源码完全解析(二)--Picasso实例的创建 Picas...

网友评论

    本文标题:Picasso源码分析

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