最近、正確にはGlide 4を使用するようにアプリを更新しました。Glide4.2.0です。グラドル:
compile 'com.github.bumptech.glide:glide:4.2.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0'
compile ('com.github.bumptech.glide:okhttp3-integration:4.2.0'){
exclude group: 'glide-parent'
}
マニフェストで:
<meta-data
Android:name="com.xxx.MyGlideModule"
Android:value="GlideModule"/>
GlideModuleクラス:
@GlideModule
public class MyGlideModule extends AppGlideModule {
@Override
public void registerComponents(Context context, Glide glide, Registry registry) {
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.connectTimeout(30, TimeUnit.SECONDS)
.build();
OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client);
glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory);
}
}
アダプター内でグライドを使用する方法:
RequestOptions myOptions = new RequestOptions()
.placeholder(R.drawable.ic_placeholder)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.dontAnimate()
.skipMemoryCache(true)
;
Glide.with(mContext)
.load(Imageid[position])
.apply(myOptions)
.into(imageView);
これらのコードで実行すると、エラーが発生しました。
Java.lang.RuntimeException: Expected instanceof GlideModule, but found: [my app package].MyGlideModule@d1c2328
at com.bumptech.glide.module.ManifestParser.parseModule(ManifestParser.Java:81)
at com.bumptech.glide.module.ManifestParser.parse(ManifestParser.Java:43)
at com.bumptech.glide.Glide.initializeGlide(Glide.Java:193)
at com.bumptech.glide.Glide.checkAndInitializeGlide(Glide.Java:172)
at com.bumptech.glide.Glide.get(Glide.Java:156)
at com.bumptech.glide.Glide.getRetriever(Glide.Java:540)
at com.bumptech.glide.Glide.with(Glide.Java:566)
at [adapter line where I implement Glide]
myGlideModuleはどのように使用できますか?
Glide 4.0は必要ありませんAndroidManifest.xmlで「GlideModule」を宣言しています。あなただけの手順に従う必要があります:
applyOptions
をオーバーライドできます。GlideApp
クラスが生成されます。GlideApp.with(this).load(imgUrl).into(glide_test_iv1)
などのGlideAppを使用しますGlideApp
を生成できない場合-
build.gradle
依存関係annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
UnsafeOkHttpGlideModule
がAppGlideModule
とmeta-data
Android:value=""
はAndroid:value="AppGlideModule"