Glide填坑指南

2021-08-19 17:40:58 字數 1697 閱讀 7144

手上的專案使用的載入框架是:universal-image-loader+業務需要定製化的一些**。universal-image-loader 這個框架是乙個非常經典好用的框架,唯一的問題是是作者很久之前就不再更新了。所以綜合考慮下,確定使用glide+封裝代替當前的載入框架。

在沒有真正使用 glide 之前,我所看到的文章基本都是讚美這個庫的功能強大,載入流暢。然而,當我用上了以後,才發現並不完美。遇到了不少的坑,需要自己填。

需要在gradle中引入:

這裡就有乙個坑,如果你用到自定義的 glidemodule,這裡的可能會失效,被com.github.bumptech.glide:okhttp3-integration:1.4.0@aar預設的替換

解決方法是公升級版本號:

compile "com.github.bumptech.glide:okhttp3-integration:1.4.0@aar" -》 compile "com.github.bumptech.glide:okhttp3-integration:1.5.0" 注意,沒有@arr

因為glide本身只負責載入,網路請求資料由網路框架決定。網路請求一般會有超時的問題,坑的是okhttp預設的超時時間太短了,如果不修改,網路狀態比較差

就很容易請求超時,自然就載入不出來。我設定的引數是60,60,30這個可以自己根據實際情況確定。

//這個是原始碼裡面的,預設超時時間,都是10s,10000ms

connecttimeout = 10_000;

readtimeout = 10_000;

writetimeout = 10_000;

//手動設定超時時間

.build;

這個是 glide 的特性,暫時沒有找到的方法修改。

臨時方案:為了避免glide自動把bitmap放大,使用在載入的時候,使用 .override(width, height) 限制的寬高

glide 缺省會載入的時候會有乙個過渡效果,其原理是採用transitiondrawable實現的。

但是這個和 placeholder,一起使用,尤其是你的playholder的尺寸比你載入的要大,這個時候就會出現,你載入出來的變形的問題。

很多人推薦使用 .dontanimate() 解決問題,即去掉過渡動畫。

但是,如果產品一定需要加入過渡動畫,官方其實沒有提供完美的解決方案,glide的作者之一在stackoverflow有回答並且給出了 github 的**。

注意:我在使用的過程中發現,如果你的imageview的type是center_crop 的話,那麼必須確保你的place_holder預設,長寬小於你載入的,不然即使使用的了作者的**,任然會有變形的問題。

自製Amiibo 踩坑 填坑 指南

去年買了臺老版ns,後來得知有amiibo這種東西的存在,但是學校附近都買不到。再後來網上看見有人在x寶賣自製卡片,就尋思著是否能自己 diy一套,於是掉坑里。要想使用自製amiibo,一共要做兩件事 1 diy amiibo 2 使用ammibo 一 diy amiibo 材料 ntag 215白...

RN環境搭建填坑指南 iOS

q pod install的時候執行到installing flipper glog 0.3.6 會報錯,並且中斷安裝 a 檢查一下xcode中的xcode preferences locations command line tools,有沒有配置。選擇乙個對應的版本後再回到命令列執行pod in...

填坑指南 GCC f列印float數值

在gcc編譯c語言工程,如果工程中存在使用 f列印浮點型資料的操作。會發現浮點型資料列印不出來。在gcc中float,double型資料一律處理為單精度 4 bytes gcc為了縮減編譯後的 尺寸,使用的是不列印 f的printf。gcc 當中提供了若干個版本的 printf sprintf,在大...