利用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的异步加载图片的功能演示,主要根据url读取图片返回流的方法。为了方便演示,将请求图片的链接先固定,每读取好一个图片就更新,界面比较简单,当然你可以做成比较好的,像很多好...
android listview异步加载图片实例 用到了线程池 下载的图片会保存到本地 并在数据库中保留记录 再次加载时会直接从本地读取
Android ListView 异步加载图片,一点也不卡,使用AsyncTask和WeakReference,注释详尽
NULL 博文链接:https://zjingye.iteye.com/blog/1936268
AystnPicture_Android ListView异步加载图片.rar
AndroidListView异步加载图片乱序问题,原因分析及解决方案.docx
Android实现ListView异步加载图片
android listView图片异步加载(拖动时不加载,双缓存)
android ListView如果从网络加载图片,直接getView,肯定会阻塞UI导致滑动很不流畅,本实例优化了getView中图片的获取。
android listview 异步加载网络图片
在项目里面使用ListView,并要求ListView的条目中有图片显示,而且这个图片是通过网络动态获取的。 这时候,会发现ListView加载很慢,半天才显示出来,影响了用户的体验。...应该另外开辟线程异步下载图片。
Android ListView异步加载图片,优化滚动效果,不卡顿、流畅显示。主要给新人了解ListView和AsyncTask、Json等使用。
android中listView的优化,同时listView中的列表内容来源于网络,从网络上下载图片图片显示在listViw中,测试用的是1000个item,测试listView的优化!
从缓存中取出图片地址asynctask异步下载图片到列表中
Android listview异步加载图片
Android中ListView全面完美的网络图片的异步加载,两种加载方式,利用了LruCache缓存,动态加载,只加载可见部分的图片.