glide依賴
//這裡用的是android studio3.0
// 設定快取大小為20mb
int memorycachesizebytes = 1024 * 1024 * 20; // 20mb
// 設定記憶體快取大小
builder.setmemorycache(new lruresourcecache(memorycachesizebytes));
// 根據sd卡是否可用選擇是在內部快取還是sd卡快取
if(sdcardutils.issdcardenable())else
}// 針對v4使用者可以提公升速度
@override
public boolean ismanifestparsingenabled()
}
glide跳過記憶體快取
.load(url)
.skipmemorycache(true)//預設為false
.dontanimate()
.centercrop()
.into(imageview);
glide磁碟快取
.load(url)
.diskcachestrategy(diskcachestrategy.all)
.dontanimate()
.centercrop()
.into(imageview);
/*預設的策略是diskcachestrategy.automatic
diskcachestrategy有五個常量:
diskcachestrategy.all 使用data和resource快取遠端資料,僅使用resource來快取本地資料。
diskcachestrategy.none 不使用磁碟快取
diskcachestrategy.data 在資源解碼前就將原始資料寫入磁碟快取
diskcachestrategy.resource 在資源解碼後將資料寫入磁碟快取,即經過縮放等轉換後的資源。
diskcachestrategy.automatic 根據原始資料和資源編碼策略來自動選擇磁碟快取策略。*/
快取清理
//磁碟快取清理(子執行緒)
//記憶體快取清理(主線程)
解決辦法:build-->rebuild project
根據需求封裝了乙個簡單的glide工具類
public class glideutils
public static void initimagenocache(context context, string url, imageview imageview)
public static void clearmemorycache(context context)
public static void clearfilecache(context context)
}).start();
}}
Glide使用之配置快取
配置類 package com.itant.zhuling.tool.image.glide import android.content.context import com.bumptech.glide.glide import com.bumptech.glide.glidebuilder i...
Glide快取機制
1.linkedhashmap 2.cleanupcallable 涉及到threadpoolexecutor private final callablecleanupcallable new callable trimtosize if journalrebuildrequired return...
Glide 快取邏輯
glide 的快取策略和picasso 的快取策略上有哪些不同,picasso 是被動清除快取,也就是依賴於lru 的 容量來清理 glide 可以在lru的基礎上新增了主動清理的功能。一共分為三層 private engineresource getengineresourcefromcache ...