原文 [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. golang Rsa

    package models import ( "crypto/rand" "crypto/rsa" "crypto/x509" " ...

  2. sqlmap新手注入

    一 什么是sqlmap sqlmap is an open source penetration testing tool that automates the process of detectin ...

  3. 安装ecshop出错

    在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be cal ...

  4. Linux突然断电后文件丢失的问题

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://yuyongid.blog.51cto.com/10626891/168504 ...

  5. 提交(post)xml文件给指定url的2种方法

    原文:提交(post)xml文件给指定url的2种方法 1  这段代码是在网上搜到的,拿来共享,项目正好要用到.其中的data你只需要传递一个xml字符串就可以 protected   string  ...

  6. java Zip文件解压缩

    java Zip文件解压缩 为了解压缩zip都折腾两天了,查看了许多谷歌.百度来的code, 真实无语了,绝大多数是不能用的.这可能跟我的开发环境有关吧. 我用的是Ubuntu14.04,eclips ...

  7. 向未声明的 JavaScript 变量来分配值

    如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明. 这条语句: carname="Volvo"; 将声明一个全局变量 carname,即使它在函数内执行.

  8. dhtmlgrid修改,支持IE10

    因为项目IE升级,导致原来使用的dhtmlgrid无法正常显示,同时通过loadxml接口还有属性不支持. 花了半天时间对dhtmlgrid进行了修改,能够支持IE10正常加载显示. edit by ...

  9. javaScript滚动新闻之上下左右平滑滚动

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  10. 六行代码获取本地IP

    uses IdIPWatch; function GetNativeIP: String; var IdIPWatch: TIdIPWatch; begin IdIPWatch := TIdIPWat ...