使用Universal Image Loader Android在ListView中加载错误的图像?

罗马笑

我有一个列表包含:contentString和列表图像,它看起来像:

[{
"contentString": "Image",
"images": [{
    "image": "url"
}]
}, {...}]

然后我尝试将其加载到中ListView

我的持有人:

class Holder {
    TextView Content;
    ImageView ImageButton;
    ImageLoader imageLoaderPost;
    public Holder(TextView Content, ImageView ImageButton, ImageLoader imageLoader) {            
        this.Content = Content;
        this.ImageButton = ImageButton;
        this.imageLoaderPost = imageLoader;
    }

}

在ListView中加载视图:

public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;

final Holder holder;
if (v == null) {
    v = inflater.inflate(R.layout.activity_row, parent, false);
    TextView Content = (TextView) v.findViewById(R.id.ContentTextView);
    ImageView ImageButton = (ImageView) v.findViewById(R.id.ImageButton);
    ImageLoader imageLoaderPost = ImageLoader.getInstance();
    holder = new Holder(Content, ImageButton, imageLoaderPost);
    v.setTag(holder);
} else {
    holder = (Holder) v.getTag();
}

final HTPost post = postList.get(position);

// post content
holder.postContent.setText(post.getContentString());

//
DisplayImageOptions options = new DisplayImageOptions.Builder()
    .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
    .considerExifParams(true)
    .resetViewBeforeLoading(true)
    .cacheOnDisk(true)
    .imageScaleType(ImageScaleType.EXACTLY)
    .bitmapConfig(Bitmap.Config.RGB_565)
    .build();
// image
if (post.getImages().size() > 0) {

    holder.imageLoaderPost.displayImage(post.getImages().get(0).getImage(), holder.postImageButton, options, new ImageLoadingListener() {@Override
        public void onLoadingStarted(String s, View view) {

        }

        @Override
        public void onLoadingFailed(String s, View view, FailReason failReason) {}

        @Override
        public void onLoadingComplete(String s, View view, Bitmap bitmap) {


        }

        @Override
        public void onLoadingCancelled(String s, View view) {}
    });
} else {
    //holder.imageLoaderPost.cancelDisplayTask(holder.postImageButton);
    log("Wrong image: " + post.getContentString());
}
return v;
}

对于没有图像的行,我只加载contentString并打印: log("Wrong image: " + post.getContentString());

但是在中ListView,我看到一个图像已被Content加载。(没有图像但行中有图像的行ListView,之前加载的所有图像中的图像与1一致)。

我不知道为什么,也许缓存ImageLoader
任何帮助,谢谢!

潘文林

您正在使用ViewHolder,因此ListView将重复使用其中的行,而无需重复创建。因此,您将在所有行中都有该图像。

简单的解决方案是隐藏ImageView在不需要的行中

    if(your condition){
        ...
        holder.ImageButton.setVisibility(View.VISIBLE);
        ... load your image
        ...
    } else {
        log("Wrong image: " + post.getContentString());

        holder.ImageButton.setVisibility(View.INVISIBLE);  //hide your ImageView or you can load default image
    }

希望有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Universal Image Loader在片段内从Internet加载图像

来自分类Dev

使用Android-Universal-Image-Loader预下载图像

来自分类Dev

使用Android-Universal-Image-Loader预下载图像

来自分类Dev

Android Universal Image Loader超时

来自分类Dev

Universal Image Loader,从FTP下载图像

来自分类Dev

Universal Image Loader,从FTP下载图像

来自分类Dev

使用Universal Image Loader启用viewpager的缩放?

来自分类Dev

来自InputStream的Android Universal Image Loader URI

来自分类Dev

使用Android Universal-Image-Loader将当前视图中的图像保存到sdcard

来自分类Dev

使用Universal Image Loader在Android网格视图中滚动时的图像重复

来自分类Dev

Universal Image Loader无法加载特定链接的图像

来自分类Dev

有没有办法使用Universal Image Loader主动加载照片?

来自分类Dev

使用Universal Image Loader的列表视图显示动态数据(图像,说明)

来自分类Dev

如何通过Universal Image Loader使用已从缓存中下载的图像

来自分类Dev

在Universal Image Loader UIL中设置ViewPager的图像Wallaper

来自分类Dev

如何使用Universal Image Loader显示视频缩略图

来自分类Dev

具有相同URL的Android Universal Image Loader请求被取消

来自分类Dev

Android Universal Image Loader和多屏幕注意事项

来自分类Dev

Android Universal Image Loader存储下载进度列表视图

来自分类Dev

Android Universal Image Loader存储下载进度列表视图

来自分类Dev

Android:Universal Image Loader和空白问题

来自分类Dev

Universal Image Loader纵向/横向问题Android Studio

来自分类Dev

android-带有Picasso或Universal Image Loader的厨房

来自分类Dev

从可绘制文件夹加载图像时,Universal Image Loader OOM吗?

来自分类Dev

Android:Universal Image Loader-将新图像添加到缓存

来自分类Dev

Universal Image Loader仅在滚动时才对图像进行四舍五入

来自分类Dev

如何使用Universal Image Loader将数组列表更改为字符串数组?

来自分类Dev

Android-Universal-Image-Loader和ImageLoader有什么区别

来自分类Dev

使用SQL Loader在表中加载数据

Related 相关文章

  1. 1

    使用Universal Image Loader在片段内从Internet加载图像

  2. 2

    使用Android-Universal-Image-Loader预下载图像

  3. 3

    使用Android-Universal-Image-Loader预下载图像

  4. 4

    Android Universal Image Loader超时

  5. 5

    Universal Image Loader,从FTP下载图像

  6. 6

    Universal Image Loader,从FTP下载图像

  7. 7

    使用Universal Image Loader启用viewpager的缩放?

  8. 8

    来自InputStream的Android Universal Image Loader URI

  9. 9

    使用Android Universal-Image-Loader将当前视图中的图像保存到sdcard

  10. 10

    使用Universal Image Loader在Android网格视图中滚动时的图像重复

  11. 11

    Universal Image Loader无法加载特定链接的图像

  12. 12

    有没有办法使用Universal Image Loader主动加载照片?

  13. 13

    使用Universal Image Loader的列表视图显示动态数据(图像,说明)

  14. 14

    如何通过Universal Image Loader使用已从缓存中下载的图像

  15. 15

    在Universal Image Loader UIL中设置ViewPager的图像Wallaper

  16. 16

    如何使用Universal Image Loader显示视频缩略图

  17. 17

    具有相同URL的Android Universal Image Loader请求被取消

  18. 18

    Android Universal Image Loader和多屏幕注意事项

  19. 19

    Android Universal Image Loader存储下载进度列表视图

  20. 20

    Android Universal Image Loader存储下载进度列表视图

  21. 21

    Android:Universal Image Loader和空白问题

  22. 22

    Universal Image Loader纵向/横向问题Android Studio

  23. 23

    android-带有Picasso或Universal Image Loader的厨房

  24. 24

    从可绘制文件夹加载图像时,Universal Image Loader OOM吗?

  25. 25

    Android:Universal Image Loader-将新图像添加到缓存

  26. 26

    Universal Image Loader仅在滚动时才对图像进行四舍五入

  27. 27

    如何使用Universal Image Loader将数组列表更改为字符串数组?

  28. 28

    Android-Universal-Image-Loader和ImageLoader有什么区别

  29. 29

    使用SQL Loader在表中加载数据

热门标签

归档