(14)[Xamarin.Android] 異步的網絡圖片下載

原文 [Xamarin.Android] 異步的網絡圖片下載android

在設計要從網絡上接大量數據而且顯示在Android Listview中,而這些資料是利用Json格式傳送而且數據中包含這圖片檔案。 那在Xamarin中如何實做這種異步下載的觀念?git

*在閱讀這一篇前,建議能夠先看一下當麻哥的如何客製化的ListView之章 
http://www.dotblogs.com.tw/junegoat/archive/2013/07/17/c-sharp-xamarin-android-customize-listitem-baseadapter.aspx
要客製化ListView,基本上就是四個步驟 : 
    1. 創建一個客制的Layout。
    2. 創建一個數據型別。
    3. 創建一個客制的Adapter。
    4. 在View中創建檢視
1. 創建一個客制的Layout
在這個lab中,客製化的View的部分我創建了三個View,分別是兩個TextView與一個ImageView。
2. 創建一個數據型別
這邊我製做了一個WebApi而後把它放置在Windows Azure上:
Json URL : http://benluwebapi.azurewebsites.net/api/values ,這個API會回傳我已經放在Windows Azure上的文字以及照片資源位置。
而後去Json2csharp網站中Generate類別檔案 http://json2csharp.com 。
直接把網址填進去,而後按下」Generate」後,能夠獲得這個Json檔案的對應類別。

public class RootObject{github

    public string title { get; set; }web

    public string detail { get; set; }json

    public string image { get; set; }api

}網絡

3. 創建一個客制的Adapter
比較詳細的信息就請參考當麻許的文章,這邊相對應他的文章只改了兩行程序代碼。
      3.1 這個範例由於會使用到異步下載圖片,因此這邊要去下載MonoDroid.UrlImageViewHelper 這個項目文件。下載回來後在Xamarin裏面編譯這一個檔案,獲得UrlImageViewHelper.dll檔案。 下載位置:
https://github.com/Redth/MonoDroid.UrlImageViewHelper
     在專案中把這個UrlImageViewHelper.dll檔案加入參考。
      3.2 在客製化的Customer View中,在Layout讀畫面的部分加入底下的Code。 這樣Android再讀取網絡圖片數據的時候就會以異步的方式下載。

var imageView = view.FindViewById (Resource.Id.imageView1);異步

UrlImageViewHelper.UrlImageViewHelper.SetUrlDrawable(imageView, item.image);async

4. 在View創建檢視而且傳遞數據
相關文章
相關標籤/搜索