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,不然自定义类的实现类可能没法自动生成代码

猜你喜欢

转载自blog.csdn.net/sinat_34388320/article/details/124800403