一個好的類庫的重要特征就是可配置性強。我們先簡單使用android-universal-image-loader,一般情況下使用預設配置就可以了。
下面的執行個體利用android-universal-image-loader将網絡圖檔加載到圖檔牆中。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
裡面主要的對象都用 突出顯示了。
imageloaderconfiguration是針對圖檔緩存的全局配置,主要有線程類、緩存大小、磁盤大小、圖檔下載下傳與解析、日志方面的配置。
imageloader是具體下載下傳圖檔,緩存圖檔,顯示圖檔的具體執行類,它有兩個具體的方法displayimage(...)、loadimage(...),但是其實最終他們的實作都是displayimage(...)。
displayimageoptions用于指導每一個imageloader根據網絡圖檔的狀态(空白、下載下傳錯誤、正在下載下傳)顯示對應的圖檔,是否将緩存加載到磁盤上,下載下傳完後對圖檔進行怎麼樣的處理。
從三者的協作關系上看,他們有點像廚房規定、廚師、客戶個人口味之間的關系。imageloaderconfiguration就像是廚房裡面的規定,每一個廚師要怎麼着裝,要怎麼保持廚房的幹淨,這是針對每一個廚師都适用的規定,而且不允許個性化改變。imageloader就像是具體做菜的廚師,負責具體菜單的制作。displayimageoptions就像每個客戶的偏好,根據客戶是重口味還是清淡,每一個imageloader根據displayimageoptions的要求具體執行。
在上面的示例代碼中,我們使用imageloaderconfiguration的預設配置,下面給出imageloaderconfiguration比較詳盡的配置,從下面的配置中,可以看出imageloaderconfiguration的配置主要是全局性的配置,主要有線程類、緩存大小、磁盤大小、圖檔下載下傳與解析、日志方面的配置。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
imageloaderconfiguration的主要職責就是記錄相關的配置,它的内部其實就是一些字段的集合(如下面的源代碼)。它有一個builder的内部類,這個類中的字段跟imageloaderconfiguration中的字段完全一緻,它有一些預設值,通過修改builder可以配置imageloaderconfiguration。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
每一個<code>imageloader.displayimage(...)</code>都可以使用display options。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
display options的主要職責就是記錄相關的配置,它的内部其實就是一些字段的集合(如下面的源代碼)。它有一個builder的内部類,這個類中的字段跟displayoption中的字段完全一緻,它有一些預設值,通過修改builder可以配置displayoptions。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
參考連結
http://blog.csdn.net/wangjinyu501/article/details/8091623
https://github.com/nostra13/android-universal-image-loader
http://www.intexsoft.com/blog/item/74-universal-image-loader-part-3.html
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
轉載:http://www.cnblogs.com/kissazi2/p/3886563.html