美文网首页终端研发部AndroidAndroid开发
Glide4 高效加载图片的配置

Glide4 高效加载图片的配置

作者: 康熙微博私访记 | 来源:发表于2018-03-22 19:56 被阅读472次

    在build.gradle中添加glide依赖

    // glide 依赖
    compile 'com.github.bumptech.glide:glide:4.6.1'
    // glide 相关注解,生成GlideApp代码
    annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
    // Glide网络库配置成okhttp3
    compile ('com.github.bumptech.glide:okhttp3-integration:4.6.1') {
        transitive = false
    }
    

    Glide全局配置类

    package com.leo.demo;
    
    import android.content.Context;
    import android.support.annotation.NonNull;
    
    import com.bumptech.glide.Glide;
    import com.bumptech.glide.GlideBuilder;
    import com.bumptech.glide.Registry;
    import com.bumptech.glide.annotation.GlideModule;
    import com.bumptech.glide.load.engine.DiskCacheStrategy;
    import com.bumptech.glide.load.engine.cache.ExternalCacheDiskCacheFactory;
    import com.bumptech.glide.module.AppGlideModule;
    import com.bumptech.glide.request.RequestOptions;
    
    /**
     * Created by kangyi on 2018/3/20.
     *
     * Glide全局配置,使用GlideModule注解执行自动代码生成,生成GlideApp,后续的Glide
     * 调用都需要替换为GlideApp.with(context).load(url).into(imageView) 的方式
     *
     */
    @GlideModule
    public class GlobalGlideConfig extends AppGlideModule {
    
        @Override
        public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
            super.registerComponents(context, glide, registry);
        }
    
        @Override
        public boolean isManifestParsingEnabled() {
            return false;
        }
    
        @Override
        public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
            super.applyOptions(context, builder);
    
            /**
             * DiskCacheStrategy.NONE: 表示不缓存任何内容。
             * DiskCacheStrategy.DATA: 表示只缓存原始图片。
             * DiskCacheStrategy.RESOURCE: 表示只缓存转换过后的图片。
             * DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。
             * DiskCacheStrategy.AUTOMATIC: 表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)。
             */
            builder.setDefaultRequestOptions(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE));
    
            /**
             * 优先外部存储作为磁盘缓存目录,防止内部存储文件过大
             * 外部存储目录默认地址为:/sdcard/Android/data/com.sina.weibolite/cache/image_manager_disk_cache
             */
            builder.setDiskCache(new ExternalCacheDiskCacheFactory(context));
        }
    }
    

    代码解析

    磁盘缓存策略

    缓存常量 说明
    DiskCacheStrategy.NONE 表示不缓存任何内容。
    DiskCacheStrategy.DAT 表示只缓存原始图片。
    DiskCacheStrategy.RESOURCE 表示只缓存转换过后的图片。
    DiskCacheStrategy.ALL 表示既缓存原始图片,也缓存转换过后的图片。
    DiskCacheStrategy.AUTOMATIC 表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)。

    别忘了关注我们的公众号


    智能汽车风暴: carstorms

    相关文章

      网友评论

        本文标题:Glide4 高效加载图片的配置

        本文链接:https://www.haomeiwen.com/subject/nerzqftx.html