經典三級緩存(代碼中註釋很多)

此處只介紹使用  具體的看源碼 註釋的非常詳細

引用次工具方法超級簡單(功能及方法可不簡單生氣 具體實現可以看代碼 源碼在下面):

使用的地方加上如下方法:

 ima = (ImageView) findViewById(R.id.imageView1);
new CacheImageAsyncTask(ima,this).execute("http://zhibo.tianyuan161.com/uploads/start_logo/2014/0429/d33063dfed90e18a8135156f97f02177.png");


解釋工具類一共四個:



AsyncTask類中主要部分:

public Bitmap getBitmap(String url) {

 ///

    // 先從內存緩存中獲取圖 如果沒有再從緩存文件中讀取 在沒有就從網絡上讀取並保存

Bitmap result = memoryCache.getBitmapFromCache(url); if (result == null) { // 文件緩存中獲取 result = fileCache.getImage(url); if (result == null) { // 從網絡獲取 result = ImageGetFromHttp.downloadBitmap(url); if (result != null) { fileCache.saveBitmap(result, url); memoryCache.addBitmapToCache(url, result); } } else { // 添加到內存緩存 memoryCache.addBitmapToCache(url, result); } } return result;}protected Bitmap doInBackground(String... params) {return getBitmap(params[0]);}

緩存類ImageFileCache:會判斷SD卡空間 超過設置大小就會自動清理等

Memory類:主要就是軟飲用和硬引用的結合使用 根據時間來自動處理等

點擊此處下載源碼

順便推薦另外一篇文章有關圖片的: 

Android高校加載圖片 以及OOM的解決方案(點擊)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章