利用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 异步加载图片”指的是在不阻塞UI线程的情况下,从网络、本地存储或其他来源加载图片到ListView中的技术。 这篇名为“ImageLoader”的Java文件很可能就是一个实现图片异步加载的工具类。在...
Android 异步加载图片,对ListView的异步加载图片的功能演示,主要根据url读取图片返回流的方法。为了方便演示,将请求图片的链接先固定,每读取好一个图片就更新,界面比较简单,当然你可以做成比较好的,像很多好...
本文将深入探讨Android ListView中异步加载图片的策略、常见问题以及解决方案。 首先,我们要理解异步加载的基本原理。异步加载是指在后台线程中执行耗时操作,如加载图片,而主线程则继续处理用户交互,保证界面...
本实例将详细讲解如何实现“Android ListView异步加载图片”,结合线程池、数据库和本地保存来优化性能。 首先,我们需要理解异步加载的概念。在Android中,由于主线程负责用户界面的更新,因此不应在主线程中执行...
这个“android ListView异步加载图片示例”就是为了解决这个问题。 首先,我们要理解ListView的机制。ListView通过复用视图(convertView)来提高性能,即只有当前屏幕可见的几项会创建View,其余的View会在滚动时...
"android listview异步下载图片"这个话题就是关于如何高效地在ListView中异步加载网络图片。 在Android中,处理耗时操作如网络请求或文件读写,应尽量避免在主线程进行,以防阻塞UI更新。因此,我们会采用异步编程...
"AystnPicture_Android ListView异步加载图片.rar"这个压缩包文件很可能是提供了一种解决方案,即异步加载图片到ListView中,以提高用户体验。 异步加载图片的主要目的是避免阻塞主线程,主线程负责处理用户交互和...
"android listview 异步加载图片并防止错位"这个主题就是针对这些问题提出的一种解决方案。 异步加载图片是为了避免在主线程中执行耗时操作,导致UI卡顿。通常,我们使用异步任务(如AsyncTask)或者专门的图片加载...
本文将详细介绍如何使用AsyncTask和WeakReference实现Android ListView中图片的异步加载。 首先,AsyncTask是Android提供的一种轻量级的多线程解决方案,适用于执行后台任务并更新UI。在ListView中,我们可以在...
"Android实现ListView异步加载图片" Android 实现 ListView 异步加载图片是一种常见的技术,旨在提高应用程序的性能和用户体验。本文将详细介绍 Android 中实现 ListView 异步加载图片的方法,并对相关的技术概念...
### Android ListView 异步加载图片乱序问题:原因分析及解决方案 #### 一、问题背景与重现 在Android开发过程中,ListView 是一个非常常见的控件,用于展示一系列的数据列表。然而,当涉及到在这个控件中异步加载...
本篇将深入探讨如何在Android ListView中实现异步加载图片以及相关的优化策略。 1. **异步加载图片**:在ListView中,由于滚动频繁,直接同步加载网络图片会阻塞主线程,导致界面卡顿。为了解决这个问题,可以使用...
这就是“ListView异步加载图片”这一知识点的核心。 异步加载图片的目的是将耗时的操作(如网络请求、图片解码)从主线程分离到后台线程执行,从而保持用户界面的流畅。在Android中,我们可以使用多种方式实现这一...
在项目里面使用ListView,并要求ListView的条目中有图片显示,而且这个图片是通过网络动态获取的。 这时候,会发现ListView加载很慢,半天才显示出来,影响了用户的体验。...应该另外开辟线程异步下载图片。
我们可以在doInBackground()方法中下载图片,然后在onPostExecute()方法中更新UI。 二、双缓存策略 双缓存策略通常包括内存缓存和磁盘缓存两部分。内存缓存利用Java的HashMap等数据结构,将图片数据保存在内存中,...
"Android中ListView全面完美的网络图片异步加载"这一主题正是解决这些问题的关键。 首先,我们需要理解异步加载的概念。异步加载意味着在后台线程处理耗时操作,如下载和解码图片,而不是在主线程中执行,这样可以...