今天由於項目需求的原因, 需要把原來的ViewPager的長方形圖片轉成圓角圖片.
一直覺得Glide很強大, 應該可以直接設置圓角圖片, 但是輸入 . 之後並沒有找到這個方法, 頓時一大片問號飄過 !!!
下面來說說遇到的問題:
1. 之前Glide 3.0+ 都是直接Glide. 點點點就行了, 現在升級到Glide 4.0+, 需要把這些配置全部寫在RequestOptions這個方法裏.
例如:
dontAnimate() //去掉動畫, skipMemoryCache() //不使用緩存等
配置好後, 需要在Glide使用apply(options)方法
例如:
Glide.with(mContext) .load(url) .apply(options) .into(imageView);
2. 既然是要設置圓角, 那麼肯定是要自己自定義來寫了, 因此需要自己寫個類繼承 BitmapTransformation, 然後重寫其中兩個方法.
上代碼:
注意: 註釋部分一定要注意 !!!
自己搜到的基本是這些代碼, 也顯示圓角圖片了, 但是又出現了一個新的問題.
3. Glide加載圓角圖片, 第一張圖片會閃爍 !!!
很無語!
一直認爲Glide很強大, 肯定有設置圓角的方法, 經過一段時間的源碼查找, 還真找到了 -->
new RoundedCorners(16); //就是那麼簡單, 這個鬼難找
使用了這句代碼, 運行了還真沒閃爍, 點擊去源碼看了一下, 主要是這些區別:
仿照源碼寫了一下, 加進去, 運行果然沒有閃爍, 很開森!!!
具體什麼原因, 還沒有研究出來, 很悲哀.
雖然不知道什麼原因, 功能解決了, 還是可以了, 特此記錄一下.