android listview滑动过程中不加载图片,停止时加载图片。

转载 2015年07月10日 16:21:18

在我们使用新浪微博的时候,细心的同学一定发现了,在滑动的过程中,图片是没有被加载的,而是在滑动停止时,才加载图片了。

我们今天就做一个这样的效果吧。

我们先考虑两个问题:

1、在滑动停止的时候,如何获得需要加载的图片控件?

2、因为listiew在初始化完成的时候,OnScrollListener的onScrollStateChanged与onScroll并未被触发,如何初始化第一页的图片?



package com.test.list;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
 
public class TestAndroidListActivity extends Activity {
 
    private int start_index, end_index;
 
    // 判断是否是初始化
    private boolean isInit = false;
    private ListView list;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.initList();
    }
 
    private BaseAdapter adapter = new BaseAdapter() {
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View v;
            if (convertView == null) {
                v = getLayoutInflater().inflate(R.layout.list_item, null);
                v.setTag(v);
            } else {
                v = (View) convertView.getTag();
                ImageView iv = (ImageView) v.findViewById(R.id.img);
                iv.setImageResource(R.drawable.ic_launcher);
            }
            ImageView iv = (ImageView) v.findViewById(R.id.img);
            // 给图片控件设置上对应的位置编号
            iv.setTag(position);
            if (!isInit) {
                iv.setImageResource(R.drawable.update_log);
            }
 
            return v;
        }
 
        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }
 
        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }
 
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 140;
        }
    };
 
    private void initList() {
        // TODO Auto-generated method stub
        list = (ListView) this.findViewById(R.id.list);
        list.setAdapter(adapter);
        list.setOnScrollListener(new OnScrollListener() {
 
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                // TODO Auto-generated method stub
                isInit = true;
                switch (scrollState) {
                case OnScrollListener.SCROLL_STATE_IDLE:// 滑动停止
                    for (; start_index < end_index; start_index++) {
                        ImageView img = (ImageView) list.findViewWithTag(start_index);
                        img.setImageResource(R.drawable.update_log);
                    }
                    break;
 
                default:
                    break;
                }
            }
 
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                // TODO Auto-generated method stub
                // 设置当前屏幕显示的起始index和结束index
                start_index = firstVisibleItem;
                end_index = firstVisibleItem + visibleItemCount;
 
            }
        });
 
    }
}


相关文章推荐

Android之 ListView滑动时不加载图片

listview加载图片优化的功能, 在我们使用新浪微博的时候,细心的同学一定发现了,在滑动的过程中,图片是没有被加载的, 而是在滑动停止时,才加载图片了。 我们今天就做一个这样的效...

Android ListView3 滑动不加载图片

在内存中,一张图片的加载可能

ListView滑动时不加载图片

思路是: listview(Demo中是RecyclerView,但基本一致)在滑动时不直接执行加载图片的,已任务的方式存入一个队列中,待滚动停止后在执行任务,下面是主要代码实现 MainActi...

listview滑动不加载图片

最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也...

通用Adapter与ListView滚动时不加载图片的封装

摘要 本文原创,转载请注明地址:http://kymjs.com/code/2015/04/28/01 介绍一个通用的Adapter实现,和对ListView滚动时不加载图片的封装。 在...

Android进阶:ListView性能优化异步加载图片 使滑动效果流畅

ListView 是一种可以显示一系列项目并能进行滚动显示的 View,每一行的Item可能包含复杂的结构,可能会从网络上获取icon等的一些图标信息,就现在的网络速度要想保持ListView运行的很...

Android Bitmap在不加载图片的前提获取宽高

Android Bitmap在不加载图片的前提获取宽高

RecyclerView的通用适配器,和滚动时不加载图片的封装

很早之前写过一篇讲ListView的万能适配器的方案通用Adapter与ListView滚动时不加载图片的封装,可以让你在写ListView的Adapter时只关注对控件设置内容,而不需要再去考虑Vi...
  • kymjs
  • kymjs
  • 2015-10-12 08:05
  • 1255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)