Glideロードの進捗
2502 ワード
glideのロードの進捗状況を記録します.
在build.gradleに依存を追加
okhttp 3-integrationでは、glideのロードの最下位層としてokhttpを使用することができます.
この時私たちは交換するだけでいいです.
あとは郭霖さんのブログから始めればいいのに
実はt 3以上のものはokhttp 3-integrationのものです
注意点ロードする時必ずdiskCacheStrategy(DiskCacheStrategy.NONE)をsdカードのキャッシュをスキップして、さもなくば彼はsdカードを歩いて、ネット上から直接ダウンロードすることはできません
また監視する場所
在build.gradleに依存を追加
implementation 'com.github.bumptech.glide:glide:4.7.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
implementation "com.github.bumptech.glide:okhttp3-integration:4.7.1"
okhttp 3-integrationでは、glideのロードの最下位層としてokhttpを使用することができます.
この時私たちは交換するだけでいいです.
// glide module
@com.bumptech.glide.annotation.GlideModule
public class MyGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
// okhttp
OkHttpClient.Builder builder = new OkHttpClient.Builder();
// okhttp ,
builder.addInterceptor(new ProgressInterceptor());
OkHttpClient okHttpClient = builder.build();
// glide urlConnection okhttp
registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient));
}
あとは郭霖さんのブログから始めればいいのに
実はt 3以上のものはokhttp 3-integrationのものです
注意点ロードする時必ずdiskCacheStrategy(DiskCacheStrategy.NONE)をsdカードのキャッシュをスキップして、さもなくば彼はsdカードを歩いて、ネット上から直接ダウンロードすることはできません
また監視する場所
// url
ProgressInterceptor.addListener(mImgurl, new ProgressListener() {
@Override
public void onProgress(int progress) {
Log.e("download",progress+"");
}
});
//
Glide.with(ImagDetailActivity.this).load(mImgurl).listener(new RequestListener() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
//
ProgressInterceptor.removeListener(mImgurl);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
//
Log.e("download ",isFirstResource+"---"+model+"----"+dataSource);
ProgressInterceptor.removeListener(mImgurl);
return false;
}
}).into(mIvImagDetail);