直接上源码。注释得已经很清晰了,直接调用即可。
1 package com.liuguilin.lovewallpaper.utils; 2 /* 3 * Created by 火龙裸先生 on 2017/3/3 0003. 4 */ 5 6 import android.content.Context; 7 import android.widget.ImageView; 8 9 import com.bumptech.glide.Glide; 10 import com.bumptech.glide.Priority; 11 import com.bumptech.glide.load.engine.DiskCacheStrategy; 12 import com.bumptech.glide.load.resource.drawable.GlideDrawable; 13 import com.bumptech.glide.request.RequestListener; 14 import com.bumptech.glide.request.target.SimpleTarget; 15 16 public class GlideUtils { 17 18 /** 19 * Glide特点 20 * 使用简单 21 * 可配置度高,自适应程度高 22 * 支持常见图片格式 Jpg png gif webp 23 * 支持多种数据源 网络、本地、资源、Assets 等 24 * 高效缓存策略 支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半 25 * 生命周期集成 根据Activity/Fragment生命周期自动管理请求 26 * 高效处理Bitmap 使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减小系统回收压力 27 * 这里默认支持Context,Glide支持Context,Activity,Fragment,FragmentActivity 28 */ 29 30 //默认加载 31 public static void loadImageView(Context mContext, String path, ImageView mImageView) { 32 Glide.with(mContext).load(path).into(mImageView); 33 } 34 35 //加载指定大小 36 public static void loadImageViewSize(Context mContext, String path, int width, int height, ImageView mImageView) { 37 Glide.with(mContext).load(path).override(width, height).into(mImageView); 38 } 39 40 //填充 41 public static void loadImageCrop(Context mContext, String path, ImageView mImageView) { 42 Glide.with(mContext).load(path).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView); 43 } 44 45 //设置加载中以及加载失败图片 46 public static void loadImageViewLoding(Context mContext, String path, ImageView mImageView, int lodingImage, int errorImageView) { 47 Glide.with(mContext).load(path).placeholder(lodingImage).error(errorImageView).into(mImageView); 48 } 49 50 //设置加载中以及加载失败图片并且指定大小 51 public static void loadImageViewLodingSize(Context mContext, String path, int width, int height, ImageView mImageView, int lodingImage, int errorImageView) { 52 Glide.with(mContext).load(path).override(width, height).placeholder(lodingImage).error(errorImageView).into(mImageView); 53 } 54 55 //设置跳过内存缓存 56 public static void loadImageViewCache(Context mContext, String path, ImageView mImageView) { 57 Glide.with(mContext).load(path).skipMemoryCache(true).into(mImageView); 58 } 59 60 //设置下载优先级 61 public static void loadImageViewPriority(Context mContext, String path, ImageView mImageView) { 62 Glide.with(mContext).load(path).priority(Priority.NORMAL).into(mImageView); 63 } 64 65 /** 66 * 策略解说: 67 * <p> 68 * all:缓存源资源和转换后的资源 69 * <p> 70 * none:不作任何磁盘缓存 71 * <p> 72 * source:缓存源资源 73 * <p> 74 * result:缓存转换后的资源 75 */ 76 77 //设置缓存策略 78 public static void loadImageViewDiskCache(Context mContext, String path, ImageView mImageView) { 79 Glide.with(mContext).load(path).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView); 80 } 81 82 /** 83 * api也提供了几个常用的动画:比如crossFade() 84 */ 85 86 //设置加载动画 87 public static void loadImageViewAnim(Context mContext, String path, int anim, ImageView mImageView) { 88 Glide.with(mContext).load(path).animate(anim).into(mImageView); 89 } 90 91 /** 92 * 会先加载缩略图 93 */ 94 95 //设置缩略图支持 96 public static void loadImageViewThumbnail(Context mContext, String path, ImageView mImageView) { 97 Glide.with(mContext).load(path).thumbnail(0.1f).into(mImageView); 98 } 99 100 /** 101 * api提供了比如:centerCrop()、fitCenter()等 102 */ 103 104 //设置动态转换 105 public static void loadImageViewCrop(Context mContext, String path, ImageView mImageView) { 106 Glide.with(mContext).load(path).centerCrop().into(mImageView); 107 } 108 109 //设置动态GIF加载方式 110 public static void loadImageViewDynamicGif(Context mContext, String path, ImageView mImageView) { 111 Glide.with(mContext).load(path).asGif().into(mImageView); 112 } 113 114 //设置静态GIF加载方式 115 public static void loadImageViewStaticGif(Context mContext, String path, ImageView mImageView) { 116 Glide.with(mContext).load(path).asBitmap().into(mImageView); 117 } 118 119 //设置监听的用处 可以用于监控请求发生错误来源,以及图片来源 是内存还是磁盘 120 121 //设置监听请求接口 122 public static void loadImageViewListener(Context mContext, String path, ImageView mImageView, RequestListener<String, GlideDrawable> requstlistener) { 123 Glide.with(mContext).load(path).listener(requstlistener).into(mImageView); 124 } 125 126 //项目中有很多需要先下载图片然后再做一些合成的功能,比如项目中出现的图文混排 127 128 //设置要加载的内容 129 public static void loadImageViewContent(Context mContext, String path, SimpleTarget<GlideDrawable> simpleTarget) { 130 Glide.with(mContext).load(path).centerCrop().into(simpleTarget); 131 } 132 133 //清理磁盘缓存 134 public static void GuideClearDiskCache(Context mContext) { 135 //理磁盘缓存 需要在子线程中执行 136 Glide.get(mContext).clearDiskCache(); 137 } 138 139 //清理内存缓存 140 public static void GuideClearMemory(Context mContext) { 141 //清理内存缓存 可以在UI主线程中进行 142 Glide.get(mContext).clearMemory(); 143 } 144 }