原文 [Xamarin.Android] 异步的网络图片下载

在设计要从网络上接大量数据并且显示在Android Listview中,而这些资料是利用Json格式传送并且数据中包含这图片档案。 那在Xamarin中如何实作这种异步下载的观念?

*在阅读这一篇前,建议可以先看一下当麻哥的如何客制化的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{

public string title { get; set; }

public string detail { get; set; }

public string image { get; set; }

}

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);

4. 在View建立检视并且传递数据

(14)[Xamarin.Android] 异步的网络图片下载的更多相关文章

  1. xamarin android viewpager的用法

    1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...

  2. Xamarin android 的WebClient Json下载并存储本地及sqlite数据库

    这一点雕虫小技可能对熟悉的人来说已经不值一提.但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧. 首先,json 是传递数据的事实标准了.所以先说一下将它从服务器端下载下来..net ...

  3. Xamarin.Forms教程Android SDK工具下载安装

    Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...

  4. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  5. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  6. Xamarin.Android开发实践(十八)

    Xamarin.Android之SlidingMenu 一.前言 有位网友在评论中希望能够出个在Xamarin.Android下实现SlidingMenu效果的随笔,刚好昨天在观看官网示例项目的时候也 ...

  7. Xamarin.Android开发实践(十三)

    Xamarin.Android之SQLite.NET ORM 一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之C ...

  8. Xamarin.Android开发实践(七)

    Xamarin.Android广播接收器与绑定服务 一.前言 学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需要一中机制能够将服务和活动之间架 ...

  9. Xamarin.Android开发实践(六)

    Xamarin.Android通知详解 一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android ...

随机推荐

  1. javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型

    1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...

  2. php正则提取img所有属性值

    $ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.k686.com 绿色软件 $str = ''; $list = arra ...

  3. UML-类图,包图

    UML构造设计模型   一.类图  二.包图   三.组件图   四.部署图   一.类图     1.类:类由三格表示:类名,类的属性,类的操作              类名: 首字母大学     ...

  4. delphi 读网页线程TReadHtmlThread

    读网页,通常是一个耗时操作.故把读网页放入线程是显得比较重要了. 本例用改进后的 TIdhttpEx 加上线程来实现读网页. 它的父类TSimpleThread 在此 本例程源码在此 源码中包含了所有 ...

  5. 为Delphi程序增加UAC功能

    相关资料:http://bbs.csdn.net/topics/320071356# 操作方法: 在Source\VCL目录下应该有这样两个文件sample.manifest和WindowsXP.rc ...

  6. delphi SysErrorMessage 函数和系统错误信息表 good

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...

  7. Linux进程间通信——使用消息队列

    下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道   一.什么是消息队列 消息队列提 ...

  8. java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选

    我们平时使用的一些软件,有一部分需要Java环境的支持,但是SUN那么多的产品,让人眼花缭乱的版本号,前看后看都差不多的缩写,让我们选择起来的时候常常望而却步,只好跟着感觉走.所以下面我要介绍的就是那 ...

  9. CentOS安装与配置LNMP

    本文PDF文档下载:http://www.coderblog.cn/doc/Install_and_config_LNMP_under_CentOS.pdf 本文EPUB文档下载:http://www ...

  10. linux 学习之九、Linux 磁盘与文件系统管理(2)

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php#filesys 磁盘挂载与卸除 挂载Ext2/Ext3文件系统 范例一: ...