Volley加載圖檔有兩種方式:
1,ImageRequest 來對網絡圖檔進行請求,放入請求隊列,擷取後現在在控件上面。
2,NetworkImageView 最為自定義控件來自動加載網絡圖檔。
3,imageloader,對圖檔大小,品質格式控制來按需加載圖檔。
下面分别舉例子說明使用:
ImageRequest的使用來加載圖檔:
首先設計界面,是個Gridview來加載圖檔:
activity_main.xml
<code>GridView的item布局檔案如下,上面是圖檔,下面是文字說明:</code>
下面是主要的圖檔加載的邏輯代碼,流程如下:
1,建立請求隊列mQueue;
2,建立ImageRequest 請求,并進行配置,并将請求放入請求隊列mqueue中去;
3,ImageRequest隻有一個構造方法:對圖檔大小和圖檔格式進行設定;
效果:
NetworkImageView加載圖檔:
首先在布局中使用NetWorkImageView:
java代碼裡面實作:
LruImageCache.java緩存類:
其中LruImageCache是個Lru算法類,主要用于處理緩存的大小問題,可以避免加載圖檔的時候oom的問題,ImaageLoader是volley提供的另外一種加載圖檔的方式。最後通過setImageUrl(String url, ImageLoader imageLoader)來進行加載。
NetworkImageView的優勢在于他能夠根據元件的大小自動進行圖檔的大小縮放處理。後面文章會在源碼分析中進行講解。
ImageLoader加載圖檔:
幫我們對圖檔進行緩存,還可以過濾掉重複的連結,避免重複發送請求。
1,建立請求隊列;
2,建立imageloader對象,其中imageloader的構造方法第二個參數為imageCache的實作類,實作圖檔緩存的算法類。
3,建立imagelistener對象,主要設定圖檔加載失敗和加載過程中的圖檔設定。
界面如上面第一個的界面activity_main.xml;
這裡主要看下邏輯:
界面效果: