glide缓存

1,缓存清理(子线程)
Glide.get(this).clearDiskCache();
Glide.get(this).clearMemory();


2,内存缓存
.skipMemoryCache( true )
跳过内存缓存。这意味着不会把图像在内存缓存中。重要的是要理解,这只会影响内存缓存!滑翔仍将利用磁盘高速缓存,
以避免另一个网络请求。
还好知道滑翔将所有图像资源默认缓存到内存中。因此,skipMemoryCache(false)不是必需的。


3,磁盘缓存
.diskCacheStrategy()
如果你一个图像,坐在相同的URL,但正在迅速改变,你可能希望禁用磁盘缓存。
你可以改变磁盘缓存.diskCacheStrategy()方法。与.skipMemoryCache()方法,它接受一个enum与不同的值,而不是一个简单的布尔。
如果你想禁用磁盘缓存请求时,使用DiskCacheStrategy枚举值。
Glide  
    .with( context )
    .load( eatFoodyImages[0] )
    .diskCacheStrategy( DiskCacheStrategy.NONE )
    .skipMemoryCache( true )
    .into( imageViewInternet );
   
    DiskCacheStrategy.NONE 没有缓存
DiskCacheStrategy.SOURCE 缓存只有原来的全分辨率图像
DiskCacheStrategy.RESULT 缓存只有最终的图像,在降低分辨率(也可能是转换)
DiskCacheStrategy.ALL 缓存所有


4,自定义缓存,使用了Glide Modules
1》计算默认缓存大小
MemorySizeCalculator calculator = new MemorySizeCalculator(context);  
int defaultMemoryCacheSize = calculator.getMemoryCacheSize();  
int defaultBitmapPoolSize = calculator.getBitmapPoolSize();  
2》自定义缓存大小
int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize);  
int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize);  
3》实现GlideModule接口
public class CustomCachingGlideModule implements GlideModule {  
    @Override public void applyOptions(Context context, GlideBuilder builder) {
        MemorySizeCalculator calculator = new MemorySizeCalculator(context);
        int defaultMemoryCacheSize = calculator.getMemoryCacheSize();
        int defaultBitmapPoolSize = calculator.getBitmapPoolSize();

        int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize);
        int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize);

        builder.setMemoryCache( new LruResourceCache( customMemoryCacheSize );//设置内存缓存
        builder.setBitmapPool( new LruBitmapPool( customBitmapPoolSize );//设置图片池
       
       
        int cacheSize100MegaBytes = 104857600;
        builder.setDiskCache(
            new InternalCacheDiskCacheFactory(context, cacheSize100MegaBytes)//设置磁盘缓存
        );
       
        String downloadDirectoryPath = Environment.getDownloadCacheDirectory().getPath(); 
builder.setDiskCache(  
        new DiskLruCacheFactory( downloadDirectoryPath, cacheSize100MegaBytes )//设置磁盘缓存以及缓存路径
);
    }

    @Override public void registerComponents(Context context, Glide glide) {
        // nothing to do here
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值