android-download listview图像光标停止的位置

时间:2014-08-01 14:46:46

标签: android android-listview

我有一个自定义列表视图,每行都有一个从服务器下载图像的imageview。 我正在使用cursoradapter,这是下载图像的代码:

private class downloadimage extends AsyncTask<String, String, Bitmap> {
        private Bitmap pic;
        private final WeakReference<ImageView> viewReference;

        public downloadimage(ImageView view) {
            viewReference = new WeakReference<ImageView>(view);
        }

        protected Bitmap doInBackground(String... param) {
            try {
                URL url = new URL(param[0]);
                URLConnection conn = url.openConnection();
                pic = BitmapFactory.decodeStream(conn.getInputStream());
                if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
                    try {
                        File sdCard = Environment.getExternalStorageDirectory();
                        File dir = new File(sdCard.getAbsolutePath()+ "/thumb");
                        dir.mkdirs();
                        File file = new File(dir, param[1]);
                        ByteArrayOutputStream bao = new ByteArrayOutputStream();
                        pic.compress(Bitmap.CompressFormat.JPEG, 100, bao);
                        FileOutputStream f = null;
                        f = new FileOutputStream(file);
                        if (f != null) {
                            f.write(bao.toByteArray());
                            f.flush();
                            f.close();
                        }
                    } catch (FileNotFoundException e) {
                    } catch (IOException e) {
                    }
                }
            } catch (Exception ex) {
                return null;
            }
            return pic;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            if (isCancelled()) {
                bitmap = null;
            }
            ImageView imageView = viewReference.get();
            if(bitmap!=null){
                if (imageView != null) imageView.setImageBitmap(bitmap);
            }
        }

    }

它有效,问题是这样,如果我滚动listview很多,它开始下载每个项目图像,它可能需要很长时间下载当前行图像,同时它可能会更改行imageview 2-3次。 我想在滚动时停止下载,当scrollview停止时,它会下载屏幕上的所有图像。

我该怎么做?我不想使用像“Android-Universal-Image-Loader”这样的库,因为我下载了所有图像并且每个图像都有一个特定的地址,我的意思是,我可能在sd卡上有几个子目录用于1张图像。< / p> 你可以帮帮我吗? 谢谢

0 个答案:

没有答案