首先自定義類實現glidemodule
implements
glidemodule
記住一定要實現import com.bumptech.glide.module.glidemodule;這個包下的glidemodule不然重寫的方法會不一樣
重寫glidemodule類的兩個方法
@override
public
void
(@nonnull context context,
@nonnull glidebuilder builder)
@override
public
void
registercomponents
(@nonnull context context,
@nonnull glide glide,
@nonnull registry registry)
//設定快取的大小
int cachesize =
1024
*1024*20
;//在sd卡中建立乙個用來儲存的資料夾
file file =
newfile
(environment.
getexternalstoragedirectory()
,"mycache");
//獲取檔案路徑
string path = file.
getpath()
;//磁碟lru快取工廠
builder.
setdiskcache
(new
disklrucachefactory
(path, cachesize)
);
android:name=
"包名.sd卡快取的類名"
android:value=
"sd卡快取類實現的類"
>
<
/meta-data>
如果你的模擬器是6.0以上的話記得一定要加上動態的讀寫許可權 Glide快取機制
1.linkedhashmap 2.cleanupcallable 涉及到threadpoolexecutor private final callablecleanupcallable new callable trimtosize if journalrebuildrequired return...
Glide快取配置
glide依賴 這裡用的是android studio3.0 設定快取大小為20mb int memorycachesizebytes 1024 1024 20 20mb 設定記憶體快取大小 builder.setmemorycache new lruresourcecache memorycach...
Glide 快取邏輯
glide 的快取策略和picasso 的快取策略上有哪些不同,picasso 是被動清除快取,也就是依賴於lru 的 容量來清理 glide 可以在lru的基礎上新增了主動清理的功能。一共分為三層 private engineresource getengineresourcefromcache ...