如果listview里有图片,需要进行延迟加载,不然用户体验会非常差,卡在哪里不动。
解决办法:
在listview adapter的 设置 imgvidw的 方法里 写成如下, 最主要用到的是 AsyncTask
写一个 下载图片的内部类,getUrlimg是自己写的,根据自己的需求,该方法返回的是根据URL返回的 bitmap
private class ImageDownloadTask extends AsyncTask<Object, Object, Bitmap>{
private ImageView imageView = null;
@Override
protected Bitmap doInBackground(Object... params) {
// TODO Auto-generated method stub
Bitmap bmp = null;
Log.d("tips","asdfasdfasdf" );
imageView = (ImageView) params[1];
try {
// bmp = BitmapFactory.decodeStream(new URL((String)params[0]).openStream());
bmp=getUrlimg((String)params[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bmp;
}
protected void onPostExecute(Bitmap result){
imageView.setImageBitmap(result);
}
}
然后在 adapter里的设置 imageview的 时候调用这个方法 比如
private View makeItemView(String strTitle, String url) {
LayoutInflater inflater = (LayoutInflater) AddShowbuttonList.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 使用View的对象itemView与R.layout.item关联
View itemView = inflater.inflate(R.layout.brandlistitem, null);
// 通过findViewById()方法实例R.layout.item内各组件
TextView title = (TextView) itemView.findViewById(R.id.branditemTitle);
title.setText(strTitle);
ImageView image = (ImageView) itemView.findViewById(R.id.branditemImage);
new ImageDownloadTask().execute(url, image);
// try {
// image.setImageBitmap(getUrlimg(url));
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//image.setImageResource(R.drawable.loading);
return itemView;
}
分享到:
相关推荐
以下是对"图片异步加载,照片墙,异步加载listview图片2"这一主题的详细解释。 1. 图片异步加载的重要性: 在移动设备上,如果图片资源直接在主线程中加载,可能会导致应用卡顿或ANR(Application Not Responding...
"Android实现ListView异步加载图片" Android 实现 ListView 异步加载图片是一种常见的技术,旨在提高应用程序的性能和用户体验。本文将详细介绍 Android 中实现 ListView 异步加载图片的方法,并对相关的技术概念...
Picasso和Glide的API简洁,易于集成,是解决ListView图片加载问题的首选方案。 针对“图片错位”问题,以下是一些常见的解决方案: - **复用convertView**:ListView为了提高性能,会复用已创建的View,如果不正确...
Android 异步加载图片,对ListView的异步加载图片的功能演示,主要根据url读取图片返回流的方法。为了方便演示,将请求图片的链接先固定,每读取好一个图片就更新,界面比较简单,当然你可以做成比较好的,像很多好...
本文将详细介绍如何在ListView中实现图片的异步加载,并且在用户拖动时不加载,以提高滚动流畅性。 一、异步加载原理 异步加载是指在后台线程中执行耗时操作,例如网络请求或解码图片,避免阻塞主线程。Android提供...
这里的“android listView 异步加载图片”指的是在不阻塞UI线程的情况下,从网络、本地存储或其他来源加载图片到ListView中的技术。 这篇名为“ImageLoader”的Java文件很可能就是一个实现图片异步加载的工具类。在...
在Android开发中,"通过JSON异步加载ListView"是一个常见的需求,主要用于实现数据的动态更新和用户界面的流畅性。这个技术涉及到多个关键知识点,包括网络请求、JSON解析、线程处理以及ListView的使用。 首先,...
总结来说,实现"android异步加载网络图片到ListView"涉及到以下几个关键步骤: 1. 使用AsyncTask或其他异步处理方式在后台线程加载网络图片。 2. 应用ViewHolder模式优化ListView的滚动性能。 3. 自定义Adapter,...
总的来说,Android-Universal-Image-Loader为Android开发者提供了一种高效、灵活的图片异步加载解决方案,无论是ListView、GridView还是ViewPager,都可以通过其强大的功能提升用户体验。在实际开发中,掌握这个库的...
"Android中ListView全面完美的网络图片异步加载"这一主题正是解决这些问题的关键。 首先,我们需要理解异步加载的概念。异步加载意味着在后台线程处理耗时操作,如下载和解码图片,而不是在主线程中执行,这样可以...
本资料“安卓Android源码——listview实现图片的异步加载.zip”应该包含一个示例项目,演示了如何在ListView中高效地加载网络图片。 1. **异步加载原理**:异步加载是为了避免主线程(UI线程)被阻塞,将耗时的图片...
通过以上步骤,我们可以实现一个高效的ListView图片异步加载机制。这种方案不仅可以提升用户体验,还能有效利用系统资源,避免内存问题。在实际项目中,还可以结合其他图片加载库,如Glide、Picasso等,它们提供了更...
总结,通过结合ListView、Adapter和AsyncTask,我们可以实现在Android Studio中异步加载数据,提高应用的响应速度和用户体验。在实际开发中,还需要根据项目的具体需求,灵活运用这些技术和库,不断优化数据加载的...
AsyncTask的使用及ListView的常见优化 asyncTask异步加载数据 使用了LruCache优化图片加载 通过滑动监听提高ListView滑动流畅度.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习...
在Android开发中,...通过以上介绍,你应该对Android ListView的优化有了更深入的理解,特别是异步加载图片和Json解析这两个关键环节。实践中,结合各种优化策略,能有效提升ListView的性能,提供流畅的用户体验。
在Android开发中,高效地加载大量数据到列表视图(ListView)是常见的需求,而"SAX解析数据并异步加载listview"就是一种优化用户体验的方法。SAX(Simple API for XML)是一种事件驱动的XML解析器,适用于处理大型XML...
10. **总结**:在Android的ListView中实现异步加载网络图片,需要结合异步处理框架、选择合适的图片库、优化缓存策略、合理管理内存,并对ListView进行优化。通过这些手段,可以显著提升应用的性能和用户体验。
本实例将详细讲解如何实现“Android ListView异步加载图片”,结合线程池、数据库和本地保存来优化性能。 首先,我们需要理解异步加载的概念。在Android中,由于主线程负责用户界面的更新,因此不应在主线程中执行...