import android.content.Context;
import android.graphics.Bitmap;
import android.util.LruCache;
/**
* Created by jane on 2017/12/20.
*/
public class LruCacheUtils {
//申明內存緩存
private LruCache<String,Bitmap> mLruCache;
//在構造方法中進行初使化
public LruCacheUtils(Context context) {
//得到當前應用程序的內存
int maxMemory=(int)Runtime.getRuntime().maxMemory();
//內存緩存為當前應用程序的8分之1
int cacheMemory=maxMemory/8;
//進行初使化
mLruCache=new LruCache<String, Bitmap>(cacheMemory){
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getByteCount();//自定義bitmap數據大小的計算方式
}
};
}
/**
* 保存圖片到內存緩存
* @param key 圖片的url
* @param bitmap 圖片
*/
public void savePicToMemory(String key,Bitmap bitmap){
try {
mLruCache.put(key,bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 通過key值得到緩存的圖片
* @param key 圖片的url地址
* @return Bitmap 或 null
*/
public Bitmap getPicFromMemory(String key){
Bitmap bitmap=null;
try {
//通過key獲取圖片
bitmap= mLruCache.get(key);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
}
浙公網安備 33010602011771號