1、基本要求
根據用戶需求可以靈活配置(建造者模式)
支持高并發,圖片加載的優先級
支持可以選擇不同的加載策略,對加載策略進行擴展
二級緩存 加載圖片時內存中已經加載了,則從內存中加載,不存在去外置卡中加載,外置還不存在則從網絡下載
并對緩存策略可以擴展
支持從加載過程中顯示默認加載圖片
支持加載失敗時 顯示默認錯誤圖片
圖片顯示自適應。從網絡加載下來的圖片經最佳比例壓縮后顯示
不能失真變形
支持請求轉發,下載
2、用到的知識點
- 設計模式:
生產者 消費者模式
建造者模式
單例模式
模板方法模式
策略模式
- 緩存
內存緩存 LruCache技術
硬盤緩存技術DiskLruCache技術
圖片下載時請求轉發
參數封裝
Paste_Image.png
ImageLoader收到展示和加載圖片的任務,并交給ImageLoaderEngine(創建任務,并進行任務調度)分配到具體的線程池去完成,任務通過 Cache (本地緩存)及 ImageDownloader (從網絡獲取圖片)獲取圖片,中間可能經過 BitmapProcessor(圖片處理器) 和 ImageDecoder (圖片解碼)處理,最終轉換為Bitmap 交給 BitmapDisplayer 在 ImageAware 中顯示。
注:其中 Cache 分為 MemoryCache(內存緩存) 和 DiskCache(硬盤緩存) 兩部分。
:Processor 資源(圖片)處理器,負責處理資源,比如旋轉、壓縮、截取等。