在 Utils class 中为 Glide 提取 headers
Extract headers for Glide in a Utils class
所以我的 class 中有以下逻辑来使用 Glibe 库加载图像:
GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent)
.build());
Glide.with(imgVw.getContext())
.load(glideUrl).apply(new RequestOptions().placeholder(placeholder)
.into(imgVw);
我在很多地方都使用了这段代码,因此我只想在 GlideUtils class 中提取带有 LazyHeaders 的部分。
这是我目前所拥有的:
GlideUtils:
public class GlideUtils {
public GlideUtils() {
initGlideHeaders();
}
private LazyHeaders.Builder initGlideHeaders() {
return new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent));
}
}
那么在我的第一个 class 中我将有 :
GlideUrl glideUrl = new GlideUrl(url, new GlideUtils()).build());
但是我在上面的行中得到一个错误,它是不正确的。我错过了什么?有更好的方法吗?
目前,您只需创建一个 GlideUtils
实例并将其传递给 GlideUrl
。但是 GlideUrl
需要 LazyHeaders
.
因此,更新您的 GlideUtils 文件以像那样直接创建 LazyHeaders
:
public class GlideUtils {
public static LazyHeaders glideHeaders() {
return new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent).build();
}
}
然后用它把这些 Headers 传递给你的 GlideUrl
:
GlideUrl glideUrl = new GlideUrl(url, GlideUtils.glideHeaders()).build());
所以我的 class 中有以下逻辑来使用 Glibe 库加载图像:
GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent)
.build());
Glide.with(imgVw.getContext())
.load(glideUrl).apply(new RequestOptions().placeholder(placeholder)
.into(imgVw);
我在很多地方都使用了这段代码,因此我只想在 GlideUtils class 中提取带有 LazyHeaders 的部分。 这是我目前所拥有的:
GlideUtils:
public class GlideUtils {
public GlideUtils() {
initGlideHeaders();
}
private LazyHeaders.Builder initGlideHeaders() {
return new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent));
}
}
那么在我的第一个 class 中我将有 :
GlideUrl glideUrl = new GlideUrl(url, new GlideUtils()).build());
但是我在上面的行中得到一个错误,它是不正确的。我错过了什么?有更好的方法吗?
目前,您只需创建一个 GlideUtils
实例并将其传递给 GlideUrl
。但是 GlideUrl
需要 LazyHeaders
.
因此,更新您的 GlideUtils 文件以像那样直接创建 LazyHeaders
:
public class GlideUtils {
public static LazyHeaders glideHeaders() {
return new LazyHeaders.Builder()
.addHeader("Auth", authToken)
.addHeader("User-Agent", userAgent).build();
}
}
然后用它把这些 Headers 传递给你的 GlideUrl
:
GlideUrl glideUrl = new GlideUrl(url, GlideUtils.glideHeaders()).build());