今天工作中遇到Glide的緩存問題,之前在項目中一直用Glide加載本地及網絡圖片,但是沒有考慮過緩存的問題,但是需求中需要提到了,所以在網上查了一下,再這里和大家簡單的分享一下Glide的使用方法以及緩存
首先,Glide是Github上開源的一個圖片庫,作者是bumptech,所以要使用的話,必須添加依賴:
compile 'com.github.bumptech.glide:glide:3.6.1'
加載方式:
Glide.with(context) .load("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white_fe6da1ec.png") .into(image); 加載方式很簡單,load加載url,into綁定控件。context,支持Activity,fragment,并與活動的生命周期保持一致,在onPause()暫停加載,onResume()恢復加載
其次,并不僅僅如此:
Glide還可以通過crossFade()來設置加載動畫,placeholder()默認加載圖片,error()加載出錯圖片等等,另外還支持圖片邊界縮放,例如centerCrop,fitCenter
最后,Glide支持圖片緩存
添加diskCacheStrategy(DiskCacheStrategy.ALL)就支持硬盤緩存了,因為Glide硬盤緩存會為不同寬高的同一張圖片進行二次緩存,所以需要設置DiskCacheStrategy.ALL,它會在下次加載的時候將全尺寸的圖片取出,根據設置的大小,在緩存。
如果你不想從緩存中讀取的話,Glide還提供了skipMemoryCache(boolean)方法,是否跳過緩存,哈哈,是不是很全呢?
以上是Glide的一些簡單使用方法,僅供參考。
當然Glide還可以設置大小,路徑,格式等
1 創建GlideModule
package com.mypackage;public class MyGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { // Apply options to the builder here. } @Override public void registerComponents(Context context, Glide glide) { // register ModelLoaders here. }}2 在清單文件中添加meta-data tag標簽
<manifest ...> <!-- ... permissions --> <application ...> <meta-data android:name="com.mypackage.MyGlideModule" android:value="GlideModule" /> <!-- ... activities and other components --> </application></manifest>
3 混淆
-keepnames class com.mypackage.MyGlideModule# or more generally:#-keep public class * implements com.bumptech.glide.module.GlideModule
4 設置硬盤緩存大小
builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes));
5 設置緩存位置
你可以使用內置的internalcachediskcachefactory放置你的緩存在應用程序內部緩存目錄:
您還可以使用內置的externalcachediskcachefactory放置你的緩存在應用程序中的公共緩存目錄的SD卡:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答