`

Android实现ListView异步加载图片+缓存+线程池管理

阅读更多
http://www.iteye.com/topic/685986 《Android实现ListView异步加载图片 》相信很多人都用过这个方法,用起来的确不错,但本人的项目中发现,使用起来还是会有些问题:
1.每次启动程序,图片都到网络上去加载,特别耗流量。
2.如果一屏幕显示的listview的item有10条,就会开10条线程同时下载图片,cpu的占用率特别高。
3.每个item生成一个ViweCache对象,特别耗内存。仿照Android的APIdemo的listview适配器写法,
4.item里面如果图片的url是错误的,就会出现图片的占位符号消失,右边的textview的文字移动过来,影响美观。
  因此根据具体的需要,完善了其功能,在其基础上修改了:主要是AsyncImageLoader.java里面的方法。
  在修改的过程中遇到一个问题,listview的getView()方法莫名其妙执行三次的问题,原来是:listview的布局文件的问题:
<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
 />

  将android:layout_height="wrap_content"修改成:android:layout_height="fill_parent"就可以了。
8
2
分享到:
评论
12 楼 endual 2014-08-15  
项目运行起来,图片会乱的。
11 楼 endual 2014-08-15  
点赞 点赞 点赞 点赞 点赞

有个问题,就是我从网络获取图片,图片是从数据库来的,这个怎么处理?
10 楼 daideshun 2013-10-23  
  
9 楼 dengjiexian123 2013-09-16  
 
8 楼 heiyogl 2013-04-21  
以前没用过,现在需要这个功能了,正好研究研究。。楼主好人哈   
7 楼 sunjigy 2012-11-08  
我想很多人在开发过程中都遇到这个问题,但很少有人能彻彻底底去解决或者能解决这个问题。感谢楼主分享,希望每个人都认真的去学习,而不是只是拿过来,用了。
6 楼 radio123 2012-05-30  
很深奥啊!
5 楼 Thinkingdifferent 2012-05-05  
4 楼 misly 2012-03-27  
顶一个~~~
3 楼 童梦新苑 2012-03-16  
大哥,请教一个问题;
ImageView imageViewByTag = (ImageView) listView.findViewWithTag(imageUrl);
               
                // 防止图片url获取不到图片是,占位图片不见了的情况
                if (imageViewByTag != null && imageDrawable != null ) {
                    imageViewByTag.setImageDrawable(imageDrawable);
                }


这句话是什么意思哦,想了半天都不不知道;
2 楼 童梦新苑 2012-03-15  
很好, 浏览2525次, 就一个人评了;    顶楼主;
1 楼 zhiyou007 2011-09-05  
看看是否好用,多谢楼主

相关推荐

    android listview异步加载图片实例(线程池+数据库+本地保存)

    本实例将详细讲解如何实现“Android ListView异步加载图片”,结合线程池、数据库和本地保存来优化性能。 首先,我们需要理解异步加载的概念。在Android中,由于主线程负责用户界面的更新,因此不应在主线程中执行...

    ListView异步加载图片

    这就是“ListView异步加载图片”这一知识点的核心。 异步加载图片的目的是将耗时的操作(如网络请求、图片解码)从主线程分离到后台线程执行,从而保持用户界面的流畅。在Android中,我们可以使用多种方式实现这一...

    Android异步加载图像小结 (含线程池,缓存方法).zip

    为了保证用户体验,我们需要有效地异步加载图像,避免UI线程阻塞,同时考虑到性能优化,使用线程池和缓存策略是必不可少的。本篇文章将深入探讨如何在Android中实现这些技术。 1. **异步加载** - **AsyncTask**:...

    AystnPicture_Android ListView异步加载图片.rar

    "AystnPicture_Android ListView异步加载图片.rar"这个压缩包文件很可能是提供了一种解决方案,即异步加载图片到ListView中,以提高用户体验。 异步加载图片的主要目的是避免阻塞主线程,主线程负责处理用户交互和...

    listview 异步加载图片

    综上所述,ListView异步加载图片是一个涉及多方面优化的技术,包括异步处理、缓存策略、图片压缩、第三方库的使用以及滚动优化等。正确实施这些策略,能够显著提升用户在浏览包含大量图片的ListView时的体验。

    android listView 异步加载图片

    本文将深入探讨如何在ListView中实现图片的异步加载,提高应用的性能和用户体验。 首先,我们要理解为什么需要异步加载图片。当ListView中的每个项都包含一个图片时,如果直接在主线程中加载,会阻塞UI,导致滚动不...

    listview 异步加载图片源代码

    本文将基于提供的"listview 异步加载图片源代码",详细讲解如何实现ListView中图片的异步加载。 首先,异步加载图片的核心思想是将耗时的操作,即图片的下载和解码工作,放到后台线程进行,避免阻塞主线程。这样...

    安卓Android源码——listview实现图片的异步加载.zip

    本资料“安卓Android源码——listview实现图片的异步加载.zip”应该包含一个示例项目,演示了如何在ListView中高效地加载网络图片。 1. **异步加载原理**:异步加载是为了避免主线程(UI线程)被阻塞,将耗时的图片...

    AndroidListView异步加载图片乱序问题,原因分析及解决方案.docx

    ### Android ListView 异步加载图片乱序问题:原因分析及解决方案 #### 一、问题背景与重现 在Android开发过程中,ListView 是一个非常常见的控件,用于展示一系列的数据列表。然而,当涉及到在这个控件中异步加载...

    ListView异步加载网络图片

    下面将详细讲解如何在ListView中实现异步加载网络图片。 首先,理解异步加载的基本概念。异步加载是指在后台线程执行耗时操作,如下载和解码图片,而不阻塞主线程,这样可以保证用户界面的流畅性。在Android中,...

    安卓listview相关相关-listview异步网络图片后加载本地图片.zip

    总的来说,这个压缩包提供了学习和实践Android ListView异步加载网络图片并缓存到本地的实例,对于理解Android UI优化和图片处理策略具有一定的价值。通过研究`LazyLoaderDemo`和`JavaApk源码说明.txt`,开发者可以...

    Android图片异步加载-ListView、GridView、ViewPager

    总的来说,Android-Universal-Image-Loader为Android开发者提供了一种高效、灵活的图片异步加载解决方案,无论是ListView、GridView还是ViewPager,都可以通过其强大的功能提升用户体验。在实际开发中,掌握这个库的...

    android异步加载网络图片到ListView

    总结来说,实现"android异步加载网络图片到ListView"涉及到以下几个关键步骤: 1. 使用AsyncTask或其他异步处理方式在后台线程加载网络图片。 2. 应用ViewHolder模式优化ListView的滚动性能。 3. 自定义Adapter,...

    Android中使用ListView数据异步加载与AsyncTask

    本篇将详细介绍Android中如何利用ListView和AsyncTask实现数据的异步加载。 一、ListView简介 ListView是一种可滚动的视图,可以显示一组项目列表。每个项目都由一个ListView的子视图(通常称为“项布局”)表示。...

    ListView异步多线程加载图片

    - Android社区提供了许多优秀的图片加载库,如Picasso、Glide、Fresco等,它们都内置了异步加载和缓存机制。比如,Glide以其简洁的API和高效的内存管理,能够快速集成到项目中,实现图片的异步加载。 5. **内存...

    ListView实现图片在本地缓存

    为了解决这个问题,通常我们会采用异步加载图片并在本地缓存的技术。这个例子中的"ListView实现图片在本地缓存"就是展示了如何高效地处理这种情况。 首先,我们需要理解异步加载的概念。在Android中,我们通常使用...

    android异步加载图片源码

    总结来说,Android异步加载图片涉及到多个层面的技术,包括线程管理、缓存策略、图片处理和网络通信等。`AsyncListImage`这个项目为我们提供了一个实际的应用场景,让我们有机会深入研究这些技术,并将其应用到自己...

Global site tag (gtag.js) - Google Analytics