【问题标题】:Does glide also uses http header to cahce imagesglide 是否也使用http头缓存图片
【发布时间】:2018-09-18 13:22:38
【问题描述】:
我正在使用Picasso 在我的应用程序中加载图像。如here 所述,磁盘缓存由 HTTP 客户端维护,而不是 Picasso。
我想将图像永久保存在缓存中,除非用户将其删除或删除应用程序。我不想每次都执行网络操作。
我的问题是 Glide 是否使用其他机制来缓存图像,或者它也使用http
如here 所述,如果我需要在picasso 中提供cahce 实现,我需要使用okhttp。
我是否也需要为Glide 做同样的事情,或者它会照顾Caching
【问题讨论】:
标签:
android
performance
android-layout
picasso
android-glide
【解决方案1】:
来自官方Glidedocs,
默认情况下,缓存放置在应用程序缓存文件夹中的特定目录中。如果应用程序显示的媒体是公开的(从未经身份验证的网站、搜索引擎等获取),应用程序可以将位置更改为外部存储。
你可以这样做:
@GlideModule
public class YourAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDiskCache(new ExternalDiskCacheFactory(context));
}
}
您可以像这样自定义缓存文件夹名称:
@GlideModule
public class YourAppGlideModule extends AppGlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder {
/**You can set cache size here**/
int diskCacheSizeBytes = 1024 * 1024 * 100; // 100 MB
builder.setDiskCache(
new InternalDiskCacheFactory(context, "cacheFolderName", diskCacheSizeBytes));
}
}