我已经使用Glide下载图片很长时间了,所以这样的代码比比皆是:
GlideApp.with(getContext())
.load(imgUrl)
.into(imgView);
突然我需要记录每个图像的网址以进行进一步分析。而不是搜索 Glade 的每个用法并像这样更改代码:
GlideApp.with(getContext())
.load(imgUrl)
.listener(requestListener) // log urls through listener
.into(imgAd);
有什么方法可以像 Glide 的默认选项一样全局添加 requestListener ,这样我就不需要在整个应用程序中搜索和更改每个 Glide 的使用情况?
我使用 Glide v4 并且我检查了 post它将 URL 直接记录到 logcat,但不记录到我的本地存储以供进一步分析。
最佳答案
Glide 4.9.0 可以设置默认的 requestListener。
链接 https://github.com/bumptech/glide/releases/tag/v4.9.0 https://github.com/bumptech/glide/commit/37127f0f817d4a11dfdcc447946397b5288de593
在自定义AppGlideModule中
@GlideModule
public class MyAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
builder.addGlobalRequestListener(new RequestListener<Object>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Object> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Object resource, Object model, Target<Object> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
});
}
}
在自定义 Activity fragment 中
GlideApp.with(object).addDefaultRequestListener()
Glide.with(object).addDefaultRequestListener()
关于java - 如何记录 Glide 的每个请求 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370769/