我正在尝试制作一个有点类似于 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/