Glide源码分析之load方法

本文深入分析Glide 4.7版本中load方法的实现过程,包括Step1到Step5的关键步骤。Step1默认将图片资源转换为Drawable;Step2和Step3的asDrawable()和as(Drawable.class)功能相似;Step4和Step5在RequestBuilder中设置URL和启动操作标志。

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

这里承接上篇 Glide源码分析之with方法 ,这篇将对Glide.with(FragmentActivity).load(URL).apply(centerCropTransform()) .into(imageViewRes); 中的 load 方法进行分析

(PS:本人阅读的源码为 Glide 4.7 版本)

先贴出 load 方法的时序图:

在这里插入图片描述

接着就来依据这个时序图来阅读源码吧

Step1 load(url)
   /**
    * 相当于调用{@link #asDrawable() }然后调用{@link RequestBuilder #load(String)}
    *
    * @param string 外层传递进来的string,一般为url
    * @return 依据外层传递进来的数据模式来让RequestBuilder {@link RequestBuilder} 以 
    * 				{@link Drawable}解码方法进行构建图片资源对象
    */
    public RequestBuilder<Drawable> load(@Nullable String string) {
   
   
        return asDrawable().load(string);
    }

从这里我们就知道了 Glide 默认将下载的图片资源转为 Drawable 资源对象,如果对资源转换有其他指定的需求的话,我们可以在 laod 方法之前使用 asBitmap() 或者 asGif() ,做好相关的准备

Step2 asDrawable()
   /**
    * 通过 RequestBuilder {@link RequestBuilder} 这个构建者通过注册
    * ResourceDecoder {@link ResourceDecoder} 来解析 Drawable 类型的图片资源
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值