Glide(版本4.13.0)配置OkHttp请求网络


前言

OkHttp现在是谷歌官方推荐使用的网络请求框架,Glide配置使用OkHttp网络请求可以让图片加载时的网络请求也能使用OkHttp的灵活配置


1.引入库

以下为必须引入的库,添加之后sync project等待库下载完成

//Glide库
implementation 'com.github.bumptech.glide:glide:4.13.0'

//java版本引入
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'

//kotlin项目先引入plugin,然后是用kapt引入,切记,不然可能导致无法生成自定义GlideModule的实现类
plugins {
    id 'kotlin-kapt'
}
kapt 'com.github.bumptech.glide:compiler:4.13.0'

// Glide集成OkHttp时需要使用的库,库已经将需要适配Okhhtp的大部分代码封装
implementation "com.github.bumptech.glide:okhttp3-integration:4.13.0"

2.编写代码

  • 自定义类继承AppGlideModule
  • 给自定义类添加注解@GlideModule
  • 添加代码实现如下:
import com.bumptech.glide.Glide
import com.bumptech.glide.Registry
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader
import com.bumptech.glide.module.AppGlideModule
import com.bumptech.glide.load.model.GlideUrl

@GlideModule
public class OkHttpModule: AppGlideModule() {

    override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
        val client: OkHttpClient = OkHttpClient.Builder().build()
        registry.replace(GlideUrl::class.java, InputStream::class.java, OkHttpUrlLoader.Factory(client))
    }
    
}
  • Make Project等待注解处理器自动生成代码,自动生成的代码在build/generated/source/kapt/debug/com/bumptech/glide/GeneratedAppGlideModuleImpl.java
  • 检查上述文件夹对应的类是否生成,如果没有生成代表集成哪里出了问题。没有生成类的情况下配置的OkHttp是不生效的,切记。

3.可能遇到的问题

为什么我的类没有生成,配置无作用?

  • 注解是否添加,注解是必须的,注解处理器需要扫描这个注解生成模板代码

  • implementation "com.github.bumptech.glide:okhttp3-integration:4.13.0此库必须集成

  • 注意自定类的存放位置一定是在你程序包名一级目录下面,不能在任何二级包里面,自定义AppGlideModule命名随意

  • 记住引入处理器的时候,java项目要用annotationProcessor,kotlin项目要用kapt,不然自定义类的实现类可能没法自动生成代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值