1. 程式人生 > >Android框架之Glide4.x用法總結(4.8.0版本)

Android框架之Glide4.x用法總結(4.8.0版本)

在Android開發軟體開發中,一定會涉及到圖片的顯示,如果需要從後臺獲取資料的話那麼Glide框架最合適不過了(本人常用),目前Glide框架已更新到4.8版本,4.8.0版本是沒有jar包的,所以可以直接新增它的依賴。

1、新增依賴

dependencies{
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
}

2、具體的方法

RequestOptions options=new RequestOptions();
options.placeholder(R.drawable.loading); //新增佔位圖
options.error(R.drawable.error)
.centerCrop()//居中顯示
.diskCacheStrategy(DiskCacheStrategy.NONE)//硬碟快取
.skipMemoryCache(false)//是否採用記憶體快取功能
.override(200,100)//顯示圖片的指定大小
.transform(new BlurTransformation(),new GrayscaleTransformation())//圖片的模糊化和黑白化處理



RequestListener mListener=new RequestListener<Drawable>(){
        @Override
        public boolean onLoadFailed(GlideException e,Object model,Target<Drawable> target,boolean isFirstResource){
            
            return false;
        }

        @Override
        public boolean onResourceReady(Drawable resource,Object model,Targer<Drawable> target,DataSource dataSource,boolean isFirstResource){
            return false;
        }


Glide.with(mContext)
    .load("http://xxxx/cc.jpg")//圖片路徑
    .asBitmap() //圖片的載入格式
    .preload()    //圖片的預載入
    .apply(options)
    .listener(mListener)
    .into(imageview);


3、方法的詳解

with():方法的引數可以Activity、Fragment等。將用於圖片載入的生命週期,比如傳入的是Activity,那麼在Activity銷燬時將對相關圖片資源進行回收。

load():方法的引數可以是String、Uri、File、資源ID等。

preload():圖片的預載入,提前將圖片快取下來,當需要圖片的時候就去快取中讀取,不必再等待漫長的網路載入時間。

asBitmap():指定圖片的載入格式為“靜態圖片”,如果此時載入了一張GIF圖,那麼Glide會顯示這張GIF的第一幀(如果不指定asBitmap()方法,那麼Glide會自動判斷載入的圖片是靜態圖片還是GIF格式)

asFile()asDrawable():強制指定檔案格式的載入和Drawable格式的載入 。

listener():它實現了一個RequestListener例項。其中RequestListener中需要實現兩個方法:onResourceReady()和onLoadFailed()方法。當圖片載入完成時,回撥onResourceReady();當圖片載入失敗時,回撥onLoadFailed()方法,同時將GlideException引數傳遞進來,方便我們排查錯誤,用以定位出具體的原因。

into():傳入的ImageView的位置。也可以傳入其他的引數比如自定義target。

apply():這個引數詳細介紹一下:

它需要傳入一個RequestOption()引數,在Glide版本4.8.0之後,顯示載入圖片錯誤的方法、佔位圖的方法是無法直接調取的,這三個方法被封裝到了RequestOptions()物件中

placeholder():佔位圖,當圖片從網路或者快取之前預設顯示的圖片,等真正的圖片圖片載入完成之後會將佔點陣圖替換掉。

error():用於圖片載入失敗時顯示

centerCrop():圖片居中顯示  與它還有另外兩種對齊方式:fitCenter()、circleCrop()(對圖片進行圓形化裁剪)

diskCacheCategory():硬碟快取策略

引數:

  • DiskCacheStrategory.NONE  不快取任何內容
  • DiskCacheStrategory.DATA   只快取原始圖片
  • DiskCacheStrategory.RESOURCE  只快取轉換過後的圖片
  • DiskCacheStrategory.ALL  不僅快取原始圖片,也快取轉換過的圖片
  • DiskCacheStrategory.AUTOMIC  讓Glide根據圖片資源智慧地選擇使用哪一種快取策略(預設選項)

這些就是Glide 4.x版本需要注意的地方。隨著版本的升級,還是要不斷更新它的用法的。