一、轉(zhuǎn)載:
轉(zhuǎn)自:http://blog.csdn.net/spt_dream/article/details/53412185
Glide的引入網(wǎng)上很多,更換圖片時(shí)候調(diào)用資源id時(shí)候多更改名字才可以實(shí)現(xiàn),網(wǎng)絡(luò)請求時(shí)候用一個固定url請求也不加載直接讀取緩存,導(dǎo)致后臺換圖片,手機(jī)不起作用。
網(wǎng)上說完全起線程清除緩存,或者設(shè)置跳過內(nèi)存緩存:
Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
但是都不起作用?。。?/p>
解決方法有兩個:
1.每次加載都清理緩存。
但這個方法是不可取的, 會導(dǎo)致每次都去網(wǎng)絡(luò)加載圖片. 顯示非常慢. 這就相當(dāng)于廢棄了緩存這個好用的功能:
Glide.with(this)
.load(uri)
.asBitmap()
.centerCrop()
.diskCacheStrategy( DiskCacheStrategy.NONE )//禁用磁盤緩存
.skipMemoryCache( true )//跳過內(nèi)存緩存
.placeholder(R.mipmap.ic_head_default)
.transform(new GlideCircleTransform(this)).into(headIV);
第二種方法:
.signature( new StringSignature("01"))//增加簽名
這個api是增加簽名,地址不變,改變這個簽名參數(shù)也會不讀取緩存重新請求。
我就是用這個方法,傳遞url不變也可以重新請求,不讀取緩存。這個參數(shù)可以綁定版本號,每次更新重新獲取,或者請求后臺強(qiáng)大的Glide
二、個人解決方式:
1、既然同一個url會出現(xiàn)這個問題,是否可以考慮將圖片地址進(jìn)行改變呢
如果需求中上傳的圖片同一個ID不要求命名一樣,那么可以考慮根據(jù)上傳的圖片名字,將上傳的圖片命名為帶有圖片名稱相關(guān)的名字進(jìn)行上傳,從而改變url的地址。