`
FariyTale
  • 浏览: 195188 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android ListView 异步加载图片

阅读更多

利用AsyncTask异步加载,实现平滑滑动加载网络图片,AsyncTask代码:

public class ImageLoadTask extends AsyncTask<Void, Void, Void> {
		private int position;
		private ImageView image;
		// 初始化
		public ImageLoadTask(Context context,int position,ImageView image) {
			this.position = position;
			this.image = image;
		}

		@Override
		protected Void doInBackground(Void... params) {
			Bean bean = beans.get(position);
			Bitmap bitmap = BitmapFactory.decodeStream(
//					加载图片的方法
					Request.HandlerData(ImagePath[position]));
			bean.setImage(bitmap);
			bean.setFlag(true);
			publishProgress(); // 通知去更新UI
			return null;
		}

		public void onProgressUpdate(Void... voids) {
			if (isCancelled())
				return;
			image.setImageBitmap(beans.get(position).getImage());
		}
	}

 Adapter代码:

public class ImageAdapter extends BaseAdapter {
		public ImageAdapter(Context context) {
		}
		@Override
		public int getCount() {
			return beans.size();
		}
		@Override
		public Bean getItem(int position) {
			return beans.get(position);
		}
		@Override
		public long getItemId(int position) {
			return position;
		}
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView i = new ImageView(getApplicationContext());
			Bean b = beans.get(position);
			//如果有图片则读取,没有则跳过
			i.setImageBitmap(b.getImage());
			if (b.getFlag() == false ) {
				new ImageLoadTask(ListViewReadImageAscy.this,position,i).execute();
			}
			return i;
		}
	}

 封装图片vo代码:

public class Bean {
		private Bitmap image;
        private boolean flag = false;;
		
        public Bitmap getImage() {
			return image;
		}

		public void setImage(Bitmap image) {
			this.image = image;
		}
		
		public boolean getFlag(){
			return flag;
		}
		
		public void setFlag(boolean flag){
			this.flag = flag;
		}
	}

 

分享到:
评论

相关推荐

    android listView 异步加载图片

    这里的“android listView 异步加载图片”指的是在不阻塞UI线程的情况下,从网络、本地存储或其他来源加载图片到ListView中的技术。 这篇名为“ImageLoader”的Java文件很可能就是一个实现图片异步加载的工具类。在...

    Android ListView异步加载图片

    Android 异步加载图片,对ListView的异步加载图片的功能演示,主要根据url读取图片返回流的方法。为了方便演示,将请求图片的链接先固定,每读取好一个图片就更新,界面比较简单,当然你可以做成比较好的,像很多好...

    Android Listview异步加载图片

    本文将深入探讨Android ListView中异步加载图片的策略、常见问题以及解决方案。 首先,我们要理解异步加载的基本原理。异步加载是指在后台线程中执行耗时操作,如加载图片,而主线程则继续处理用户交互,保证界面...

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

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

    android ListView异步加载图片示例

    这个“android ListView异步加载图片示例”就是为了解决这个问题。 首先,我们要理解ListView的机制。ListView通过复用视图(convertView)来提高性能,即只有当前屏幕可见的几项会创建View,其余的View会在滚动时...

    android listview异步下载图片

    "android listview异步下载图片"这个话题就是关于如何高效地在ListView中异步加载网络图片。 在Android中,处理耗时操作如网络请求或文件读写,应尽量避免在主线程进行,以防阻塞UI更新。因此,我们会采用异步编程...

    AystnPicture_Android ListView异步加载图片.rar

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

    android listview 异步加载图片并防止错位

    "android listview 异步加载图片并防止错位"这个主题就是针对这些问题提出的一种解决方案。 异步加载图片是为了避免在主线程中执行耗时操作,导致UI卡顿。通常,我们使用异步任务(如AsyncTask)或者专门的图片加载...

    Android ListView 异步加载图片

    本文将详细介绍如何使用AsyncTask和WeakReference实现Android ListView中图片的异步加载。 首先,AsyncTask是Android提供的一种轻量级的多线程解决方案,适用于执行后台任务并更新UI。在ListView中,我们可以在...

    Android实现ListView异步加载图片

    "Android实现ListView异步加载图片" Android 实现 ListView 异步加载图片是一种常见的技术,旨在提高应用程序的性能和用户体验。本文将详细介绍 Android 中实现 ListView 异步加载图片的方法,并对相关的技术概念...

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

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

    android ListView异步加载图片和优化

    本篇将深入探讨如何在Android ListView中实现异步加载图片以及相关的优化策略。 1. **异步加载图片**:在ListView中,由于滚动频繁,直接同步加载网络图片会阻塞主线程,导致界面卡顿。为了解决这个问题,可以使用...

    ListView异步加载图片

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

    android ListView异步加载图片源码

    在项目里面使用ListView,并要求ListView的条目中有图片显示,而且这个图片是通过网络动态获取的。 这时候,会发现ListView加载很慢,半天才显示出来,影响了用户的体验。...应该另外开辟线程异步下载图片。

    android listView图片异步加载(拖动时不加载,双缓存)

    我们可以在doInBackground()方法中下载图片,然后在onPostExecute()方法中更新UI。 二、双缓存策略 双缓存策略通常包括内存缓存和磁盘缓存两部分。内存缓存利用Java的HashMap等数据结构,将图片数据保存在内存中,...

    Android中ListView全面完美的网络图片的异步加载

    "Android中ListView全面完美的网络图片异步加载"这一主题正是解决这些问题的关键。 首先,我们需要理解异步加载的概念。异步加载意味着在后台线程处理耗时操作,如下载和解码图片,而不是在主线程中执行,这样可以...

Global site tag (gtag.js) - Google Analytics