圖片加載庫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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM