這是對Glide使用的一個最簡單的梳理幽七,從 這里 Glide 開始 總結而來蹋凝。
引入依賴
compile 'com.github.bumptech.glide:glide:3.6.1'
使用
Glide
.with(Context)
.load(url或者ResId)
.placeHolder(占位圖)
.error(加載錯誤時顯示的圖片)
.crossFade(int duration) 淡入淡出動畫
.dontAnimate() 直接顯示圖片無動畫
.override(600,200)圖片顯示到imageView之前重新改變圖片大小
.centerCrop() centerCrop方式顯示到ImageView
.fitCenter() fitCenter方式顯示到ImageView
.into(ImageView) 顯示到ImageView
支持gif圖
.load()
.asGif()如果url不是gif圖會當做錯誤處理
.asBitmap()作為常規(guī)圖片顯示点晴,如果是gif圖則顯示第一幀
支持顯示本地視頻
.load()本地視頻的路徑即可
緩存策略:內存+磁盤+網絡
.skipMemoryCache(true)跳過內存緩存赌蔑,不把圖片放到內存緩存中
.diskCacheStrategy(DiskCacheStrategy.NONE) 跳過磁盤緩存
Glide緩存了原始圖像、全分辨率和小版本的圖像
DiskCacheStrategy.NONE 什么都不緩存
DiskCacheStrategy.SOURCE 只緩存全分辨率的圖片
DiskCacheStrategy.RESULT 緩存最終的圖片(降低分辨率或轉換后的)
DiskCacheStrategy.ALL 緩存所有圖像(默認)
圖片請求的優(yōu)先級
.priority() 枚舉Priority.Low搔确、NORMAL彼棍、HIGH、IMMEDIATE優(yōu)先級遞增
縮略圖
.thumbnail(0.1f)顯示原始圖10%大小的縮略圖膳算,可以傳一個Glide請求作為參數(shù)
回調 SimpleTarget和ViewTarget用于自定義視圖類 不要使用匿名內部類
.asBitmap() 最好強制返回bitmap
.into(SimpleTarget) 回調Bitmap到SimpleTarget座硕,可以指定bitmap尺寸
.into(ViewTarget) 回調一個GlideDrawable給自定義的View
生命周期
.with(Context) 如果是activity,則activity停止的時候Glide會自動停止請求
加載圖片到通知欄和widget中
.into(NotificationTarget)
.into(AppWidgetTarget)
調試使用adb命令
adb shell setprop log.tag.GenericReuqest DEBUG
異常處理 不要使用匿名內部類
.listener(RequestListener) RequestListener.onException 返回false .error才會顯示
轉換 Transformation,BitmapTransformation等
.transform(Transformation) 轉換的庫實現(xiàn)了很多種轉換 https://github.com/wasabeef/glide-transformations
自定義動畫
.animate() 傳入動畫資源id或動畫類實現(xiàn)
ViewPropertyAnimation.Animator 接口
集成網絡庫
Glide實現(xiàn)了兩個網絡庫集成 OKHttp 和Volley
compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'
compile 'com.github.bumptech.glide:volley-integration:1.3.1@aar'
用Modeule自定義Glide
略過
這里只是一個速查涕蜂,具體使用還是看 這里 Glide 開始华匾。