在滑翔3.x中,我們可以添加這樣註冊下列字符串模式裝載機:如何Authorization頭添加到所有滑翔4.x的要求
public class GlideService /* implements GlideModule*/ {
@Override
public void registerComponents(Context context, Glide glide) {
glide.register(String.class, InputStream.class, new HeaderedLoader.Factory());
}
private static class HeaderedLoader extends BaseGlideUrlLoader<String> {
public HeaderedLoader(Context context) {
super(context);
}
@Override
protected String getUrl(String model, int width, int height) {
return model;
}
@Override
protected Headers getHeaders(String model, int width, int height) {
LazyHeaders.Builder headersBuilder = new LazyHeaders.Builder();
if (BuildConfig.FLAVOR.equals("staging")) {
String auth = "username:password";
String base64 = Base64.encodeToString(auth.getBytes(), Base64.NO_WRAP);
headersBuilder.addHeader("Authorization", "Basic " + base64);
}
return headersBuilder.build();
}
public static class Factory implements ModelLoaderFactory<String, InputStream> {
@Override
public StreamModelLoader<String> build(Context context, GenericLoaderFactory factories) {
return new HeaderedLoader(context);
}
@Override
public void teardown() { }
}
}
}
但它不是從文檔清楚我們如何才能做到這一點爲最新版本。
任何提示?謝謝!
使用prepend()。 prepend()將確保您的ModelLoader或ResourceDecoder在所有其他先前註冊的組件之前被調用,並且可以先運行。 – chad