前言
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
,不然自定义类的实现类可能没法自动生成代码
今天的文章
CloseableHttpClient_nginx配置请求转发分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60255.html