gpt4 book ai didi

Android-Universal-Image-Loader 不会在 gridview 中滚动加载图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:31 25 4
gpt4 key购买 nike

我正在使用 Android-Universal-Image-Loader用于将远程图片加载到我的 GridView 单元格中的 ImageView 的库。

这里是 imageLoader 配置:

new ImageLoaderConfiguration.Builder(Config.context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCacheSize(20 * 1024 * 1024) // 20 Mb
.memoryCache(new LruMemoryCache(20 * 1024 * 1024))
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.enableLogging() // Not necessary in common
.build();

和显示选项:

new DisplayImageOptions.Builder()
.showStubImage(R.drawable.blank)
.showImageForEmptyUri(R.drawable.no_image)
.build();

问题:一旦 gridview 的 Activity 开始,所有工作正常并且图像出现在单元格中,然后我向下滚动网格(我在网格中有大约 20 个项目)并且其他图像正确加载。但是一旦我滚动到顶部,已经加载的图像就会再次开始加载。

在上下滚动几次后,网格将保存所有图像并且它们不再消失。

有没有人遇到过类似的问题,或者你知道我做错了什么。感谢您的帮助。

添加:这是我的适配器中的 getView 方法:

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

View view = convertView;
ViewHolder holder;

if ( view == null ) {
view = Config.context.getLayoutInflater().inflate(R.layout.featured, null);
holder = new ViewHolder();

holder.titleText = (TextView) view.findViewById(R.id.featured_title);
holder.priceText = (TextView) view.findViewById(R.id.featured_price);
holder.image = (ImageView) view.findViewById(R.id.thumbnail_image);

view.setTag(holder);
}
else {
holder = (ViewHolder) view.getTag();
}

HashMap<String, String> listing = listings.get(position);

/* set text values */
holder.titleText.setText(listing.get("title"));
holder.priceText.setText(listing.get("price"));

/* load image to list (AsyncTask) */
Utils.imageLoaderFeatured.displayImage(listing.get("photo"), holder.image, Utils.imageLoaderOptionsFeatured);

return view;
}

附言。如果您想查看其他代码(可能是网格适配器)来帮助我解决这个问题,请告诉我。

约翰

最佳答案

我在 Universal-Image-Loader Demo 上遇到了同样的问题,希望 Library 开发者在下次更新中解决这个问题。

更新:在nostra13的帮助下解决了这个问题,你必须将库更新到1.9 version并使用这种方式在imageView中显示图片:

ImageAware imageAware = new ImageViewAware(imageView, false);
imageLoader.displayImage(imageUri, imageAware);

它解决了我的问题。关于为什么要这样做的一些细节可以在 here 中找到。和 here

关于Android-Universal-Image-Loader 不会在 gridview 中滚动加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com