Glide-通过Modules定制Glide

来源:互联网 发布:聚合数据接口使用 编辑:程序博客网 时间:2024/06/07 11:03

前言:

我们一般情况下使用Glide都很简单,只用简单的调用几个方法就能够很好的显示图片了,但其实Glide在初始化的时候进行了一系列的默认配置,比如缓存的配置,图片质量的配置等等.接下来我们就介绍一下一个比较高级的功能,通过Modules定制自己的个性Glide

Glide 系列目录

  • 1.Glide-入门教程
  • 2.Glide-占位图以及加载动画
  • 3.Glide-加载本地图片
  • 4.Glide-加载Gif
  • 5.Glide-绑定生命周期
  • 6.Glide-内存缓存与磁盘缓存
  • 7.Glide-通过Modules定制Glide
  • 8.Glide-自定义缓存
  • 9.Glide-图片的压缩
  • 10.Glide-图片预处理(圆角,高斯模糊等)
  • 11.Glide-图片的剪裁(ScaleType)
  • 12.Glide-源码详解

1.创建一个类实现GlideModule

public class XiayuGlideModule implements GlideModule {    @Override    public void applyOptions(Context context, GlideBuilder builder) {       //TODO    }    @Override    public void registerComponents(Context context, Glide glide) {       //TODO    }}

2.配置清单文件

在AndroidManifest中配置刚刚创建的GlideModule,需要在application节点下添加

<application>    ...    <meta-data        android:name="com.xiayu.xiayuglidedemo.XiayuGlideModule"        android:value="GlideModule" /></application>

其中android:name就是刚才创建的GlideModule的实现类

3.进行自定义配置

刚才创建的GlideModule的实现类时,会要实现两个方法,这里要用到的是其中的applyOptions方法,applyOptions方法里面提供了一个GlideBuilder,通过GlideBuilder我们就能实现自定义配置了

public class XiayuGlideModule implements GlideModule {    @Override    public void applyOptions(Context context, GlideBuilder builder) {        builder.setDiskCache();//自定义磁盘缓存        builder.setMemoryCache();//自定义内存缓存        builder.setBitmapPool(); //自定义图片池        builder.setDiskCacheService();//自定义本地缓存的线程池        builder.setResizeService();//自定义核心处理的线程池        builder.setDecodeFormat();//自定义图片质量    }    @Override    public void registerComponents(Context context, Glide glide) {        //TO    }}

4.例子(配置默认图片质量)

由于Glide的配置涉及到的东西比较多,在以后的文章里面会对每一种配置做说明具体介绍,这里就先示范一个比较简单的配置,那就是图片质量配置

用过Picasso的朋友应该知道,Picasso默认的图片质量是ARGB_8888,而Glide默认的图片质量是RGB_565,这里我们就来修改默认配置,让Glide的默认质量为ARGB_8888

(ARGB_8888是指32位图,即每个像素占4byte)
(RGB_565是16位图,即每个像素占2byte)

public class XiayuGlideModule implements GlideModule {    @Override    public void applyOptions(Context context, GlideBuilder builder) {        //自定义图片质量        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);    }    @Override    public void registerComponents(Context context, Glide glide) {        //TO    }}

5.其他

在清单文件中可以配置多个GlideModule,Glide会依次遍历并读取

4 0
原创粉丝点击