網(wǎng)上很多教程,告訴你怎樣去做,但是現(xiàn)在Glide升級(jí)到4.0以上版本了,變化比較大,3.*那些方法已經(jīng)不適應(yīng)了。我說(shuō)一下過(guò)程:
1在app的Gradle中添加以下依賴(lài)項(xiàng)
implementation'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor'com.github.bumptech.glide:compiler:4.8.0'
implementation'com.github.bumptech.glide:annotations:4.8.0'
//解決Glide找不到Android聲明庫(kù)問(wèn)題
annotationProcessor'androidx.annotation:annotation:1.0.0'
implementation"com.github.bumptech.glide:okhttp3-integration:4.8.0"
2新建一個(gè)類(lèi)
import android.content.Context;
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.load.model.GlideUrl;
import com.bumptech.glide.module.AppGlideModule;
import com.qdgaoshanyun.dianxiaoerapplication.utils.Http.ImgOkHttpClient;
import java.io.InputStream;
import io.reactivex.annotations.NonNull;
import okhttp3.OkHttpClient;
@GlideModule
public final? class MyAppGlideModuleextends AppGlideModule {
@Override
? ? public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
//super.registerComponents(context, glide, registry);
? ? ? ? OkHttpClient client = ImgOkHttpClient.getImgOkHttpClient();
? ? ? ? registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
? ? }
}
其中,getImgOkHttpClient()就是獲取已經(jīng)實(shí)現(xiàn)了證書(shū)認(rèn)證的Okhttp。
3使用
GlideApp.with(WelcomeActivity.this)
.load("圖片的完整url路徑")
.listener(new RequestListener() {
@Override
? ? ? ? ? ? public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
Log.e("wlcm_load_img", "圖片加載失敗");
return false;
? ? ? ? ? ? }
@Override
? ? ? ? ? ? public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
return false;
? ? ? ? ? ? }
})
.into(binding.adImg);