java - Fast Scroll In ListView 使用 UniversalImageloader 优化或使用 View 引用

标签 java android universal-image-loader

我正在尝试制作一个有点类似于 Facebook 或 Instagram 的时间线。更接近 Instagram。在图像加载中,我正在使用库 UniversalImageLoader。我的每个 ListView 项目行的高度可能超过 600dp。通常我一次取 5 件元素。

现在出现的问题是,滚动速度稍快时图片会互相替换。由于 View 被重用。图像显示大约需要 3-4 秒,否则将在 listView 行中显示错误的图像。

1- 如果有人知道如何优化/修复这个快速滚动 ImageOverlap 问题 否则, 2-记录 EntireView 的方式是什么,让我们在一些“ArrayList”中说并将它放在当前位置。注意到还有很多其他事情正在发生,不仅仅是 mediaDp 被改变了。

    if (convertView == null)
    {
        view = inflator.inflate(R.layout.timeline_list_row, parent, false);
        viewHolder.userDp = (RoundedImageView) view.findViewById(R.id.userDp);

        viewHolder.mediaDp = (ImageView) view.findViewById(R.id.imagePostedMedia);

        /************ Set holder with LayoutInflater ************/
        view.setTag(viewHolder);
        final ViewHolder newHolder = viewHolder;

    }
    else
        viewHolder = (ViewHolder) view.getTag();

    imageLoader.displayImage(media.imagePath, viewHolder.mediaDp);

最佳答案

尝试如下设置 ImageView 的位图选项。

DisplayImageOptions  options = new DisplayImageOptions.Builder()
                        .showImageOnLoading(R.drawable.ic_stub)
                        .showImageForEmptyUri(R.drawable.ic_empty)
                        .showImageOnFail(R.drawable.ic_error)
                        .cacheInMemory(true)
                        .cacheOnDisc(true)
                        .considerExifParams(true)
                        .build();

现在尝试将 imageview 显示为

imageLoader.displayImage(imageUrls[position], holder.image, options);

我相信这会奏效。

查看代码 cacheInMemory(true) 显示选项的属性很重要。

关于java - Fast Scroll In ListView 使用 UniversalImageloader 优化或使用 View 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340127/

相关文章:

来自 unix 机器的 Java Swing ComboBox 文件列表

android - 渲染问题渲染期间引发异常 : <include/> can only be used inside of a ViewGroup

android - 在从服务调用的线程中使用处理程序

android - 如果从具有相同 URL 的服务器更改,通用图像加载程序不会刷新图像

android - 图像在图像加载器中被复制

java - MySQL Workbench 和 Java(通过 JDBC)的查询结果不同

java - Java中文本颜色的意义是什么? (为什么 public/private = red | class = cyan)

java - 如何在特定条件下停止 Gradle 或 Maven 构建

java - MVVM 在多个存储库中重复代码

android - 使用 FileProvider 共享缓存图像