解決Glide加載圖片閃爍的問題(感覺加載了兩遍 !!!)

今天由於項目需求的原因, 需要把原來的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); //就是那麼簡單,  這個鬼難找

使用了這句代碼, 運行了還真沒閃爍, 點擊去源碼看了一下, 主要是這些區別:

仿照源碼寫了一下, 加進去, 運行果然沒有閃爍, 很開森!!!

具體什麼原因, 還沒有研究出來, 很悲哀.

雖然不知道什麼原因, 功能解決了, 還是可以了, 特此記錄一下.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章