(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创建检视而且传递数据
相关文章
相关标签/搜索