閱讀120 返回首頁    go 技術社區[雲棲]


Droid-Fu介紹二: WebImageView and WebGalleryAdapter

https://www.cnblogs.com/xiongbo/archive/2011/05/27/2057234.html

介紹兩個非常便捷的組件: WebImageView 和 WebGalleryAdapter.

WebImageView

許多移動應用大量使用基於Web的內容,尤其是照片,頭像其他圖像。 問題是:你必須下載後才能顯示出來,這意味著

  1. 下載的操作必須是異步的,否則界麵將會卡住
  2. 在下載處理過程中,必須顯示進度,這樣用戶才會有更好的體驗
  3. 下載的過程非常消耗手機資源,因此通常都會考慮緩存下載的圖片

看起來顯示一個圖片是相當痛苦的一個過程。幸運的是Droid-Fu提供了一個非常簡單的類解決此問題:WebImageView

這裏有個例子顯示WebImageView的效果:第一個圖片顯示了WebImageView正在處於加載狀態,第二個圖片顯示了加載完畢後的效果。

webimage1
webimage2

使用 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

  上一篇:go What&#39;s New in the Web Server (IIS) Role (IIS 7)
  下一篇:go Windows Server 2008 中 Web 服務器 (IIS) 角色更改