博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android模仿易网新闻页面源码
阅读量:6044 次
发布时间:2019-06-20

本文共 1122 字,大约阅读时间需要 3 分钟。

hot3.png

  在项目里面使用ListView,并要求ListView的条目中有图片显示,而且这个图片是通过网络动态获取的。

  这时候,会发现ListView加载很慢,半天才显示出来,影响了用户的体验。
  这是因为,使用了当前线程(绘制ui的线程)去下载图片。应该另外开辟线程异步下载图片。
  其中,数据来源于assets/list.xml,我通过xstream将它映射为NewsBean的列表。
  先来看效果:
23011913_4ovA.jpg
  这部分代码见com.easymorse.list.ListViewDemoActivity的:

  private List getList() {  try {  XStream xStream = new XStream();  xStream.alias(“item”, NewsBean.class);  return (List) xStream.fromXML(this.getAssets().open(  “list.xml”));
  有关xstream的代码,还可以参见Android下通过xstream解析xml格式信息。   项目有两个布局文件,main.xml和news_row.xml文件。前者是Activity的布局文件,后者是列表每一行的布局文件。   这里需要注意的是,ListView在main.xml布局文件中的id,需要写成:
  android:id=”@android:id/list”
  否则会报错。而且,Activity需要继承ListActivity。   因为使用了自定义的列表行布局,因此需要自己写ListAdapter。在这里是   MyImageAndTextListAdapter。该类通过AsyncImageLoader类实现对图片的异步加载;通过:
  private Map viewMap
  实现对异步加载了的图片做缓存。如果尚未加载图片,news_row.xml文件中声明了默认的图片文件:
  android:src=”@drawable/d1″
  在AsyncImageLoader中异步加载图片,使用了回调方式,通过:
  public interface ImageCallback{  public void imageLoaded(Drawable imageDrawable,String imageUrl);  }
23011913_DeJG.jpg

转载:http://www.adobex.com/android/source/details/00000161.htm

转载于:https://my.oschina.net/androidcode/blog/103888

你可能感兴趣的文章
学校宿舍的深夜之思考
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
linux
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
算法(Algorithms)第4版 练习 1.3.4
查看>>
jquery easyUI checkbox复选项获取并传后台
查看>>
浅析NopCommerce的多语言方案
查看>>
设计模式之简单工厂模式
查看>>
C++中变量的持续性、链接性和作用域详解
查看>>
2017 4月5日上午
查看>>
第一阶段冲刺报告(一)
查看>>
使用crontab调度任务
查看>>
【转载】SQL经验小记
查看>>
zookeeper集群搭建 docker+zk集群搭建
查看>>
Vue2.5笔记:Vue的实例与生命周期
查看>>