120
技術社區[雲棲]
Droid-Fu介紹二: WebImageView and WebGalleryAdapter
https://www.cnblogs.com/xiongbo/archive/2011/05/27/2057234.html
介紹兩個非常便捷的組件: WebImageView 和 WebGalleryAdapter.
WebImageView
許多移動應用大量使用基於Web的內容,尤其是照片,頭像和其他圖像。 問題是:你必須下載後才能顯示出來,這意味著:
- 下載的操作必須是異步的,否則界麵將會卡住
- 在下載處理過程中,必須顯示進度,這樣用戶才會有更好的體驗
- 下載的過程非常消耗手機資源,因此通常都會考慮緩存下載的圖片
看起來顯示一個圖片是相當痛苦的一個過程。幸運的是Droid-Fu提供了一個非常簡單的類解決此問題:WebImageView
這裏有個例子顯示WebImageView的效果:第一個圖片顯示了WebImageView正在處於加載狀態,第二個圖片顯示了加載完畢後的效果。
使用 WebImageView
如果你還沒有下載Droid-Fu的jar包的話,趕快下載。然後,在你的布局文件中,增加如下的內容:
01 <?xml version="1.0" encoding="utf-8"?> 02 <LinearLayout xmlns:andro 03 xmlns:droidfu="https://github.com/droidfu/schema" 04 android:orientation="vertical" 05 android:layout_width="fill_parent" 06 android:layout_height="fill_parent" 07 android:gravity="center" 08 android:background="#FFF" 09 > 10 11 <com.github.droidfu.widgets.WebImageView android: 12 android:layout_width="75dip" 13 android:layout_height="75dip" 14 android:background="#CCC" 15 droidfu:autoLoad="true" 16 droidfu:imageUrl="https://www.android.com/images/opensourceprojec.gif" 17 droidfu:progressDrawable="..." 18 /> 19 20 </LinearLayout>
所有的參數都是可選的,這樣你可以先定義你自己的view,然後調用WebImageView.loadImage()觸發加載圖片的操作。很簡單是吧!
緩存
Droid-Fu的WebImageView從web上獲取圖片是由 ImageLoader 實現的。ImageLoader自身包含兩層緩存。當你使用WebImageView加載一個圖片的時候,首先查詢第一層的內存緩存,如果找到目標,立刻返回;如果沒有找到,就會查詢第二層的文件緩存。Droid-Fu使用應用的緩存目錄,因此你不需要考慮緩存維護的事宜。如果還是沒找到,那麼WebImageView最終將會從web上下載該圖片。
目前緩存的實現是采用Google Collections MapMaker,它的容量會隨著可用內存的變化而變化。什麼都不用管,隻要將需要緩存的內容放到緩存中,如果緩存空間不夠,會回收其他的緩存內容。
WebGalleryAdapter
WebGalleryAdapter 是Android的Gallery的一個Adapter實現類,而且他完全是即插即用:創建gallery,設置一個WebGalleryAdapter實現類,並且將圖片的url地址傳遞給他。無論用戶在gallery做什麼樣的操作,這些圖片都會自動的從web上下載,並且擁有緩存和進度隻是這樣的特性。
原文地址:https://brainflush.wordpress.com/2009/11/23/droid-fu-part-2-webimageview-and-webgalleryadapter/
最後更新:2017-04-02 17:09:28