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版本需要注意的地方。隨著版本的升級,還是要不斷更新它的用法的。