//参照 http://blog.csdn.net/yy1300326388/article/details/45153813 

public class CarWashDistanceAdapter extends BaseAdapter {private static final String TAG = "CarWashDistanceAdapter";private Context context;private MyDialog myDialog;private ArrayList<FourServiceBean> arrayList;private  boolean scrollState=false;private float density = 1.5f; //定义当前listview是否在滑动状态
    public void setScrollState(boolean scrollState) {this.scrollState = scrollState;}public CarWashDistanceAdapter(Context context, ArrayList<FourServiceBean> arrayList) {this.context = context;this.arrayList=arrayList;}public void refresh( ArrayList<FourServiceBean> arrayList) {this.arrayList=arrayList;notifyDataSetChanged();}@Overridepublic int getCount() {return arrayList.size();}@Overridepublic Object getItem(int position) {return arrayList.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {Hodler hodler;if (convertView == null) {hodler = new Hodler();convertView = View.inflate(context, R.layout.listview_car_wash_item, null);hodler.mImageView = (ImageView) convertView.findViewById(R.id.car_wash_item_imageview);hodler.mTelImageview = (ImageView) convertView.findViewById(R.id.car_wash_item_phone_imageview);hodler.mTitleTextView = (TextView) convertView.findViewById(R.id.car_wash_item_title_textview);hodler.mDistanceTextView = (TextView) convertView.findViewById(R.id.car_wash_item_distance_textview);hodler.mSubTextView = (TextView) convertView.findViewById(R.id.car_wash_item_subtitle_textview);hodler.relativeLayout = (RelativeLayout) convertView.findViewById(R.id.car_wash_item_relativelayout);hodler.mRatingBar = (RatingBar) convertView.findViewById(R.id.car_wash_item_ratingbar);convertView.setTag(hodler);} else {hodler = (Hodler) convertView.getTag();}hodler.mTitleTextView.setText(arrayList.get(position).getShop_name());hodler.mSubTextView.setText(arrayList.get(position).getDetail_address());if(arrayList.get(position).getDistance()/1000 <= 1){hodler.mDistanceTextView.setText((new DecimalFormat("0").format(arrayList.get(position).getDistance()) + "m"));}else {hodler.mDistanceTextView.setText((new DecimalFormat("0.00").format(arrayList.get(position).getDistance()/1000)+ "km"));}if(arrayList.get(position).getScore()!=null  ) {hodler.mRatingBar.setRating(Float.valueOf(arrayList.get(position).getScore()));}final String[] sourceStrArray = arrayList.get(position).getTel_num_list().split(",");hodler.mTelImageview.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {myDialog = new MyDialog(context, R.style.MyDialog, new MyDialog.LeaveMyDialogListener() {@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.mydialog_clear:myDialog.dismiss();break;}}}, Arrays.asList(sourceStrArray),myDialog);myDialog.show();}});//这获取的是图片的urlString url = arrayList.get(position).getShop_pic_url();if (!scrollState){//如果当前不是滑动的状态,我们填充真数据//加载图片if(url!= null) {//这是我添加图片的方法THttpOpenHelper.newInstance().setImageBitmap(hodler.mImageView, url,(int)(100 * density), (int)(75 * density), R.drawable.icon_default1, R.drawable.icon_default1);//设置tag为1表示已加载过数据hodler.mImageView.setTag("1");}else{hodler.mImageView.setImageResource(R.drawable.icon_default1);hodler.mImageView.setTag("1");}}else{//如果当前是滑动的状态,我们填充假数据//将数据image_url保存在Tag当中  hodler.mImageView.setTag(url);//设置默认显示图片(最好是本地资源的图片)
                hodler.mImageView.setImageResource(R.drawable.icon_default1);}return convertView;}private class Hodler {ImageView mImageView;ImageView mTelImageview;TextView mTitleTextView;TextView mSubTextView;TextView mDistanceTextView;RelativeLayout relativeLayout;RatingBar mRatingBar;}
}

以上是Adapter中的代码:其中重要的就是

  //定义当前listview是否在滑动状态public void setScrollState(boolean scrollState) {this.scrollState = scrollState;}

还有这段是给imageview赋值的操作

 //这获取的是图片的urlString url = arrayList.get(position).getShop_pic_url();if (!scrollState){//如果当前不是滑动的状态,我们填充真数据//加载图片if(url!= null) {//这是我添加图片的方法THttpOpenHelper.newInstance().setImageBitmap(hodler.mImageView, url,(int)(100 * density), (int)(75 * density), R.drawable.icon_default1, R.drawable.icon_default1);//设置tag为1表示已加载过数据hodler.mImageView.setTag("1");}else{hodler.mImageView.setImageResource(R.drawable.icon_default1);hodler.mImageView.setTag("1");}}else{//如果当前是滑动的状态,我们填充假数据//将数据image_url保存在Tag当中
              hodler.mImageView.setTag(url);//设置默认显示图片(最好是本地资源的图片)
                hodler.mImageView.setImageResource(R.drawable.icon_default1);}

最后在Activity中添加

     mListView.setOnScrollListener(new AbsListView.OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {switch (scrollState){//停止滚动case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:{//设置为停止滚动carWashDistanceAdapter.setScrollState(false);//当前屏幕中listview的子项的个数int count = view.getChildCount();for (int i = 0; i < count; i++) {//获取到item的图片显示的Imageview控件ImageView iv_show= (ImageView) view.getChildAt(i).findViewById(R.id.car_wash_item_imageview);if (!iv_show.getTag().equals("1")){//如果等于1说明图片资源已加载过,不等于说明没有去getTag()的图片url//直接从Tag中取出我们存储的数据image——urlString image_url = iv_show.getTag().toString();if (image_url != null) {//这个判断是防止图片的url是否为空,为空的话给默认图片。THttpOpenHelper.newInstance().setImageBitmap(iv_show, image_url, R.drawable.icon_default1, R.drawable.icon_default1);//设置为已加载过数据iv_show.setTag("1");} else {iv_show.setBackgroundResource(R.drawable.icon_default1);iv_show.setTag("1");}}}break;}//滚动做出了抛的动作case AbsListView.OnScrollListener.SCROLL_STATE_FLING:{//设置为正在滚动carWashDistanceAdapter.setScrollState(true);break;}//正在滚动case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:{//设置为正在滚动carWashDistanceAdapter.setScrollState(true);break;}}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}});

转载于:https://www.cnblogs.com/niupi/p/6542522.html

LIstview滑动时不加载图片,停止时加载!相关推荐

  1. android studio 加载图片,Android Studio 加载网络图片

    Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...

  2. html异步加载图片,javascript-img异步加载图片

    在开发中,我们经常有异步加载图片的请求,然后在图片加载成功后做一些操作,一般我们通过onload方法来实现.网上有两种写法,大家可以先看一下(注:logo.jpg是张本地图片): 例子1: var i ...

  3. android图片异步加载图片,Android 异步加载图片分析总结

    研究了android从网络上异步加载图像,现总结如下: (1)由于android UI更新支持单一线程原则,所以从网络上取数据并更新到界面上,为了不阻塞主线程首先可能会想到以下方法. 在主线程中new ...

  4. ios html异步加载图片,iOS 异步加载本地图片

    iOS 异步加载本地图片 问题 当某个界面使用系统API + (nullable UIImage *)imageNamed:(NSString *)name;加载了过多本地图片资源时,不可避免的会产生 ...

  5. firefox网页慢加载图片慢或加载不出来

    对于ubuntu上网页慢(网页打开速度慢),图片难加载问题一直是个头疼的事.今天终于解决了 可直接把我的配置文件靠过去,放在指定位子(/etc/*); 简化步骤:   window请直接看第三条< ...

  6. 图片的懒加载和预加载?

    一.写在前面 图片的懒加载和图片的预加载都是前端性能优化的一个方案,当然可能存在不同的应用场景,下面我们将总结一下这两个方案. 二.图片懒加载 图片的懒加载是什么? 图片的懒加载指的是在长网页中延迟加 ...

  7. lazy(懒加载)模式和异步加载模式详解

    说到懒加载,其实就是延迟会再加载,没有想象中的那么神秘,其实我们时刻都在用懒加载, 第一种:简单的延迟创建控件,比如说,创建一个属性变量,我们用get方法来获取生成这个变量就是用到了懒加载,详细点说就 ...

  8. html加载时页面闪烁白色背景,解决页面加载闪白问题-背景图片加载优化

    页面加载闪白 今天遇到一个问题,写了一个使用深色背景图的网页,发现访问/刷新时,会出现短暂的闪白现象. 之前使用浅色背景时没有发现过这个问题,搜索半天也没有找到特别直白有效的回答. 找到的几个答案,有 ...

  9. VUE:img标签加载图片失败时,显示一张自定义默认图片

    简介 在使用<img />标签时,会遇到图片加载失败(有图片资源路径,但是可能路径拼接不正确.域名失效等)的情况,此时,显示出来的效果看着就很不舒服,就想显示一张默认图片. img加载失败 ...

  10. 解决IDEA加载多个项目(模块)时图片文件资源调用不出来的问题,new ImageIcon()图片相对路径加载失败的问题

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.分析问题 二.解决步骤 1.采用绝对路径 2.改良相对路径 前言 提示:这里可以添加本文要记录的大概内容: IDE ...

最新文章

  1. 【GStreamer】在x264enc中设置profile级别
  2. 5G 信令流程 — 5GC 的注册管理(RM,Registration Management)
  3. [笔记] 分频计数(七)
  4. HZOJ 斐波那契(fibonacci)
  5. Linux驱动设计——字符杂项设备
  6. C# 字符,字符串和文本处理。
  7. 微软发文庆祝 .NET 诞生 20 周年纪念日!
  8. 代码缺乏装饰?使用ts装饰器来装饰你的代码
  9. fluent瞬态_Java中的瞬态关键字及其使用
  10. 同步/异步阻塞/非阻塞
  11. 在google map上显示Instagram的照片
  12. mysql存储过程数组字符串_Mysql通过存储过程分割字符串为数组
  13. 大厂面试常问的机器学习,计算机视觉怎么学?详细指南来了!
  14. Qt QMutexLocker_自动解锁的机制
  15. 经典技术文章翻译(3):IIS7协议侦听器(Introducing IIS 7 IIS Protocol Listeners)
  16. MATLAB实验总结定积分,matlab实验报告--定积分的近似计算 -
  17. vulfocus——骑士cms任意代码执行(CVE-2020-35339)
  18. ExpandableListView购物车—+okhttp封装
  19. php页眉,自定义页眉
  20. (八)JVM成神路之GC分区篇:G1、ZGC、ShenandoahGC高性能收集器深入剖析

热门文章

  1. 谷歌体三维捕捉新突破:实现后期任意照明修改
  2. 计算机组成原理知识点概叙--计算机系统简介
  3. oracle 树状结构一直出现不了_SEO站内优化:网站结构优化(十一)
  4. 051_InfiniteScroll无限滚动
  5. 060_JavaScript作用域
  6. antdesign 所兼容的浏览器_Edge 87.0最新离线稳定版浏览器
  7. php curl ob start,curl - php中开启缓冲压缩 ob_start('ob_gzhandler') 之后是在什么时候开始的压缩?...
  8. JavaWeb:CSS层叠样式表
  9. 为了远程控制:teamview检测为商用、ZeroTier + 自带远程桌面、Ping其他电脑ping不通
  10. coordinatorlayout 设置不可滑动_滑动关闭App损害iPhone电池寿命,我们需要“改掉强迫症”吗?...