图片加载库Glide的封装工具类,方便以后使用

直接上源码。注释得已经很清晰了,直接调用即可。

  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 }

 

posted @ 2017-03-03 23:56  火龙裸先生  阅读(3788)  评论(0编辑  收藏  举报