圖片框架Glide 的封裝-->工具類

前言

圖片加載框架有很多,例如很火的picsso和glide,一個項目中少不了的就是加載圖片。今天就提供一個工具類供我們使用。

代碼

public class GlideUtils {
    private static String RES_URL = ""  ;  //圖片的url 地址 例如 : http://www.baidu,com/ + url 

    /**
     *  加載矩形圖片文件到 imageview上
     * @param context 上下文
     * @param imageView  要加載到那個控件上
     * @param url  圖片的url地址
     */
    public static void loadImageForUrl(Context context, ImageView imageView, String url) {
        RequestOptions options = new RequestOptions()
                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);

        Glide.with(context).load(RES_URL+"/"+url)
                .thumbnail(0.1f)
                .apply(options)
                .into(imageView);
    }

    /**
     *  加載圖片文件到 imageview上
     * @param context 上下文
     * @param imageView  要加載到那個控件上
     * @param file  圖片文件
     */
    public static void loadImageForFile(Context context, ImageView imageView, File file) {
        RequestOptions options = new RequestOptions()
                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)                 //出錯顯示的圖片
                .priority(Priority.HIGH)                     //優先級高
                .diskCacheStrategy(DiskCacheStrategy.NONE);  //禁止磁盤緩存

        Glide.with(context)
                .load(file)
                .thumbnail(0.1f)
                .apply(options)
                .into(imageView);
    }
    /**
     *加載成圓形圖片
     * @param context 上下文
     * @param imageView  要加載到那個控件上
     * @param url  圖片的 url
     */
    public static void loadCircleImageForUrl(Context context, ImageView imageView, String url){
        RequestOptions options = new RequestOptions()
//                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.geren)
                .circleCrop()
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);

        Glide.with(context).load(RES_URL+"/"+url).apply(options)
                .into(imageView);
    }

    /**
     * 
     * @param context 上下文
     * @param imageView  要加載到那個控件上
     * @param url  圖片的 url
     */
    public static void loadFillImageForUrl(Context context, ImageView imageView, String url) {
        RequestOptions options = new RequestOptions()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);
        Glide.with(context).load(RES_URL+"/"+url)
                .apply(options)
                .into(imageView);
    }
}

用法

  GlideUtils.loadCircleImageForUrl(Context, ImageView,Url);

直接使,很方便。第一個參數 :上下文
第二個參數: 要顯示到哪個控件
第三個參數 : 圖片的url 地址

glide 的其他 api

1.thumbnail(float sizeMultiplier). 請求給定係數的縮略圖。如果縮略圖比全尺寸圖先加載完,就顯示縮  
                                   略圖,否則就不顯示。係數sizeMultiplier必須在(0,1)之間,可以遞歸調用該方法。  
2.sizeMultiplier(float sizeMultiplier). 在加載資源之前給Target大小設置係數。  
3.diskCacheStrategy(DiskCacheStrategy strategy).設置緩存策略。DiskCacheStrategy.SOURCE:緩存  
                                   原始數據,DiskCacheStrategy.RESULT:緩存變換(如縮放、裁剪等)後的資源數據,  
                                   DiskCacheStrategy.NONE:什麼都不緩存,DiskCacheStrategy.ALL:緩存SOURC和RESULT。  
                                   默認採用DiskCacheStrategy.RESULT策略,對於download only操作要使用DiskCacheStrategy.SOURCE。  
4.priority(Priority priority).     指定加載的優先級,優先級越高越優先加載,但不保證所有圖片  
                                   都按序加載。枚舉Priority.IMMEDIATE,Priority.HIGH,  
                                   Priority.NORMAL,Priority.LOW。默認爲Priority.NORMAL。  
5.dontAnimate(). 移除所有的動畫。  
6.animate(int animationId). 在異步加載資源完成時會執行該動畫。  
7.animate(ViewPropertyAnimation.Animator animator). 在異步加載資源完成時會執行該動畫。  
8.placeholder(int resourceId).    設置資源加載過程中的佔位Drawable。  
9.placeholder(Drawable drawable). 設置資源加載過程中的佔位Drawable。  
10.fallback(int resourceId).      設置model爲空時要顯示的Drawable。如果沒設置fallback,  
                                  model爲空時將顯示error的Drawable,如果error的Drawable也沒設置,  
                                  就顯示placeholder的Drawable。  
11.fallback(Drawable drawable).設置model爲空時顯示的Drawable。  
12.error(int resourceId).設置load失敗時顯示的Drawable。  
13.error(Drawable drawable).設置load失敗時顯示的Drawable。  
14.listener(RequestListener<? super ModelType, TranscodeType> requestListener). 監聽資源加  
                             載的請求狀態,可以使用兩個回調:onResourceReady(R resource, T model,  
                             Target<R> target, boolean isFromMemoryCache, boolean isFirstResource)  
                             和onException(Exception e, T model, Target<R> target, boolean isFirstResource)  
                             但不要每次請求都使用新的監聽器,要避免不必要的內存申請,可以使用單例進行統一的異常監聽和處理。  
15.skipMemoryCache(boolean skip). 設置是否跳過內存緩存,但不保證一定不被緩存  
                           (比如請求已經在加載資源且沒設置跳過內存緩存,這個資源就會被緩存在內存中)。  
16.override(int width, int height). 重新設置Target的寬高值(單位爲pixel)。  
17.into(Y target).設置資源將被加載到的Target。  
18.into(ImageView view).   設置資源將被加載到的ImageView。取消該ImageView之前所有的加載並釋放資源。  
19.into(int width, int height).     後臺線程加載時要加載資源的寬高值(單位爲pixel)。  
20.preload(int width, int height).  預加載resource到緩存中(單位爲pixel)。  
21.asBitmap(). 無論資源是不是gif動畫,都作爲Bitmap對待。如果是gif動畫會停在第一幀。  
22.asGif().把資源作爲GifDrawable對待。如果資源不是gif動畫將會失敗,會回調.error()。 
發佈了27 篇原創文章 · 獲贊 12 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章