请问有无人做过关于listview滑动时不加载图片,一加载就只加载当前屏幕的item的图,其他没加载的都用默认图片填充。
呃,不知道我说得够不够明白呢,就好像新浪微博之类的客户端,几乎所有高效率的listview上下滑动都是这个效果,请教一下

解决方案 »

  1.   

    listview已经做了内部优化,采用双缓存技术让当前可见窗口内容加载,不再当前窗口暂时不加载(缓存),新浪微博使用的就是listview控件(android)
      

  2.   

    没你说的那么复杂,开一个线程异步下载图片,下载完成后设置图片即可。给你大概的写了一下。
    //主activity
    private class MainActivity extend Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    }

    //下载图片的方法
    new ImageDownloader.imageDownload("...",new ImageDownloader.ImageDowloaderCallback(){
    onDownloadSuccess(){
    //通知主线程更新view即可。
    };
    })

    }//图片下载类
    public class ImageDownloader{
    void imageDownload(url,ImageDowloaderCallback){
    new ImageDownTask().execute();
    }

    private class ImageDownTask extends AsyncTask<String, Void, Bitmap>{
    @Override
    protected Bitmap doInBackground(String... params) {
    //...
    return null;
    }

    @Override
    protected void onPostExecute(Bitmap result) {
    //通知activity下载图片完成,方法回调
    super.onPostExecute(result);
    }
    }

    public static interface ImageDowloaderCallback{
    onDownloadSuccess();
    }
    }
      

  3.   

    1、判断listView状态
    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {// ListView
    // 触摸事件 public void onScroll(AbsListView view, int firstVisibleItem,
    int visibleItemCount, int totalItemCount) {
    } public void onScrollStateChanged(AbsListView view, int scrollState) {
    switch (scrollState) {
    case AbsListView.OnScrollListener.SCROLL_STATE_FLING:// 滑动状态
    threadFlag = false;
    break;
    case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:// 停止
    threadFlag = true;
    startThread();
    break;
    case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:// 触摸listView
    threadFlag = false;
    break;
    default:
    // Toast.makeText(contextt, "default",
    // Toast.LENGTH_SHORT).show();
    break;
    }
    }
    };
    2、获取当前屏幕上显示的items:
    mListView.getFirstVisiblePosition();
    mListView.getLastVisiblePosition();
      

  4.   


    那怎么在adapter的getView里面怎么使用呢?或者说拿到了这些数据在哪里使用呢?