根據對郭霖老師博客的學習,個人總結了圖片處理中三級緩存的全部過程,然後自己封裝的一個加載圖片的代碼框架,
對圖片的優化過程包括
1、內存優化 使用LruCache
2、硬盤優化,使用DiskLruCache
3、網絡讀取圖片,使用AsyncTask異步下載
代碼中包括了文件下載,內存緩存,硬盤緩存,硬盤緩存刪除 計算等接口方法,而且有詳細的文檔說明
部署說明:
首先,在包的根目錄下,(eclipse的src下,studio的Java目錄下)創建包libcore.io,
將DiskLruCache.java放在該包下
然後創建BitmapUtil包,將其他的Java文件放在該包下,
需要加載圖片的時候,
假如findViewById找到ImageView的控件爲iv
圖片的地址是imageURL
以下幾行代碼就可以搞定:
iv.setTag(imageUrl);
bitmapUtil = new BitmapUtil(getApplicationContext());
bitmapUtil.display(iv, imageUrl);
其中在BitmapUtil中,可供調用的接口:
用來取消下載圖片的所有任務 ,在onDestory中調用
bitmapUtil.cancelDownloadTask();
根據指定的imageUrl刪除磁盤緩存的文件
remove(String imageUrl);
刪除所有的磁盤緩存的圖片文件
delete();
獲取到硬盤緩存文件的大小(字符串)
size();
關閉掉本地圖片緩存,直接從內存或者網絡上查找圖片:
close();