此處只介紹使用 具體的看源碼 註釋的非常詳細
引用次工具方法超級簡單(功能及方法可不簡單 具體實現可以看代碼 源碼在下面):
使用的地方加上如下方法:
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類:主要就是軟飲用和硬引用的結合使用 根據時間來自動處理等
順便推薦另外一篇文章有關圖片的: