Fresco解析 (初始化)

本文介绍了Fresco图片加载框架的初始化过程,从Appliction的onCreate方法开始,详细讲解了Fresco的构造方法、ImagePipelineFactory以及MVC架构。同时分析了SimpleDraweeView的setImageURI方法,阐述了如何通过构造方法和XML布局文件解析创建对象,并最终设置图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目图片加载框架换成了Fresco,都说功能很强大,拿出了一些时间分析了一下源码,特此总结一下,由于能力有限,有分析不对的地方,欢迎大神指正。

Fresco官方文档 https://www.fresco-cn.org/docs/
源码地址:https://github.com/dingys/FrescoLib.git

Fresco源码整体架构是一个非常标准的MVC,不过现在主流的架构应该是MVP,不过多了解一些东西也不是啥坏事。除此之外Fresco源码还使用了工厂模式,管道,构建者模式,Producer等模式,当然肯定还有一些我不知道的设计模式。里面中定义了大量的抽象类和接口,刚开始看代码的时候跟着一个方法跳来跳去,一会儿自己都懵逼了,所以大家建议大家先了解一下每个类的用处,和它们的继承关系。
分析源码一般都是从入口开始,这次也不例外,从初始化开始。

Fresco初始化

通常会在程序Appliction onCreate方法初始化,Fresco提供了两个构造方法:

public static void initialize(Context context) {
    ImagePipelineFactory.initialize(context);
    initializeDrawee(context);
}
public static void initialize(Context context, ImagePipelineConfig config) {
    ImagePipelineFactory.initialize(config);
    initializeDrawee(context);
}

通常调用一个参数的构造方法,想自定义Fresco的配置时可调用两个参数的构造方法。
两个构造方法都实例化了一个ImagePipelineFactory,从类名看,这是一个创建ImagePipeline的工厂,ImagePipeline是啥可以先不要先纠结,看ImagePipelineFactory类的注释:

/**
 * Factory class for the image pipeline.
 *  生产Image Pipeline的工厂类
 * This class constructs the 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值