Glide:防止从磁盘加载图片,每次通过模块从服务器加载
Glide: Prevent loading images from disk, load from server each time via module
我正在使用 AppGlideModule
来自定义 Glide 作为我的图像加载器。
如何强制它从网络加载图像 (url)? (不是来自 DiskCache)
注意:我知道这会通过为每个调用设置 diskCacheStrategy(DiskCacheStrategy.NONE)
来实现,如下所示:
GlideApp.with(view)
.load(imgUrl)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(binding.imgCover)
但我正在寻找为整个应用程序应用此配置。
对于进程范围的实现,您可以选择在模块配置期间配置无操作自定义磁盘缓存,如下所示:
@GlideModule
public class YourAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDiskCache(new DiskCache.Factory() {
@Override
public DiskCache build() {
return new NoOpDiskCache();
}
});
}
}
对于来自 get(Key key)
的 NoOpDiskCache
return null 和所有其他覆盖方法的无操作。
diskCacheStrategy
将应用为 RequestOptions
。所以我尝试了这个:
@GlideModule
class CustomGlideModule : AppGlideModule() {
override fun applyOptions(context: Context, builder: GlideBuilder) {
builder.setDefaultRequestOptions {
RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE)
}
}
}
我正在使用 AppGlideModule
来自定义 Glide 作为我的图像加载器。
如何强制它从网络加载图像 (url)? (不是来自 DiskCache)
注意:我知道这会通过为每个调用设置 diskCacheStrategy(DiskCacheStrategy.NONE)
来实现,如下所示:
GlideApp.with(view)
.load(imgUrl)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(binding.imgCover)
但我正在寻找为整个应用程序应用此配置。
对于进程范围的实现,您可以选择在模块配置期间配置无操作自定义磁盘缓存,如下所示:
@GlideModule
public class YourAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDiskCache(new DiskCache.Factory() {
@Override
public DiskCache build() {
return new NoOpDiskCache();
}
});
}
}
对于来自 get(Key key)
的 NoOpDiskCache
return null 和所有其他覆盖方法的无操作。
diskCacheStrategy
将应用为 RequestOptions
。所以我尝试了这个:
@GlideModule
class CustomGlideModule : AppGlideModule() {
override fun applyOptions(context: Context, builder: GlideBuilder) {
builder.setDefaultRequestOptions {
RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE)
}
}
}