android - ListView 显示错误和重复图像

标签 android listview android-listview android-imageview android-image

我有一个 ListView 和 12 个 ImageView。

每个 ImageView 都有不同的图像,这些图像是从 url 加载的。无论我是否滚动,图像都会随机播放,有时还会重复。

我尝试了其他 10 种方法来解决这个问题,但都没有成功。

这是我下载并显示图片的代码:

private static class ViewHolder {
    ImageView imageViewPhoto;

    Bitmap photo;
    boolean isDownloading;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder viewHolder;

    if (convertView == null) {

        // ...classical view holder and other operations...

        if (!viewHolder.isDownloading) {

            viewHolder.isDownloading = true;

            IImageDownload downloadInterface = new IImageDownload() {

                @Override
                public void onError(VolleyError error, String url) {
                }

                @Override
                public void onDownloaded(Bitmap response, String url) {

                        viewHolder.photo = response;
                    notifyDataSetChanged();
                }
            };

            imageDownloader.downloadImage(dataList.get(position).getPhotoPath(), true, downloadInterface);

        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }



    if (viewHolder.photo != null) {
        viewHolder.imageViewPhoto.setImageBitmap(viewHolder.photo);
    } else {
        viewHolder.imageViewPhoto.setImageResource(R.drawable.gray_background);
    }

}

提前感谢您的任何想法!

最佳答案

之前:

imageDownloader.downloadImage(dataList.get(position).getPhotoPath(), true, downloadInterface);

放:

viewHolder.photo.setImageBitmap(null);

这将重置 ImageView 的位图,因为它正在被回收并因此保留其图像。

关于android - ListView 显示错误和重复图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432372/

相关文章:

Android 支持库 Gradle 冲突

android - 每次循环时更改 TextView 的名称或变量 - Android

无需滑动的Android选项卡布局

android - 如何使用 sqlite DB 刷新 ListView

java - 错误 : java. lang.IndexOutOfBoundsException : Invalid index 2, 大小为 2

android - setLevel okhttp LoggingInterceptor 弃用

android - 使 ListView 可点击 React Native

android - setAdapter() 上的空指针异常

java - Android - 从SQLite获取数据并显示在ListView中

java - 如何显示上一个和下一个列表项的详细信息