gpt4 book ai didi

android - UIL - ImageAware 被重新用于另一个图像。任务被取消

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:52 26 4
gpt4 key购买 nike

首先,我有一个使用 Universal Image Loader 的适配器库以获取每个项目的缩略图。它看起来像这样:

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.page_edit_item, null);
viewHolder = new ViewHolder();
viewHolder.thumbnailImageView= (ImageView) convertView.findViewById(R.id.imgPageData);
viewHolder.progressBar =(ProgressBar) convertView.findViewById(R.id.photo_upload_progress_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}

viewHolder.progressBar.setVisibility(View.VISIBLE);
String photoPath = getItem(position).getPhoto();
ImageLoader.getInstance().displayImage(photoPath, viewHolder.thumbnailImageView, new SimpleImageLoadingListener(){
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
progressBar.setVisibility(View.GONE);
}
});
}

当点击 ListView 项目时,它会移动到详细信息屏幕 Activity 。在此屏幕中,我尝试获取详细图像(与所选项目具有相同的图像 url)。

     ImageLoader.getInstance().displayImage(photoPath, detailImageView);

问题是当我选择一个下载图像的项目(它被加载并显示在 ListView 中),但详细信息屏幕不会立即显示该图像,它仍然是黑色并等待适配器 ListView 中的所有项目完成加载和显示,然后它可以显示。
从 logcat 转到详细信息屏幕时,我可以看到这一行:

ImageAware is reused for another image. Task is cancelled

有什么想法吗?

更新:这是我的UIL配置

  DisplayImageOptions options = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565) // default
.displayer(new SimpleBitmapDisplayer())
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.memoryCacheExtraOptions(1024, 768)
.discCacheExtraOptions(1024, 768, CompressFormat.JPEG, 75, null)
.taskExecutor(getThreadPool())
.taskExecutorForCachedImages(getThreadPool())
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // default
.discCache(new LimitedAgeDiscCache(cacheDir, 3600 * 24 * 7)) // default
.discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(getApplicationContext())) // default
.defaultDisplayImageOptions(options) // default
.denyCacheImageMultipleSizesInMemory()
.writeDebugLogs()
.build();
ImageLoader.getInstance().init(config);

最佳答案

我也遇到过这个问题。经过多次查找和尝试,仍然找不到原因。偶尔想到可能是layout的问题,于是查了一下:

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content">

</ListView>

然后我将 listView 的 layout_height 从“wrap_content”更改为“match_parent”,问题解决了!

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent">

</ListView>

关于android - UIL - ImageAware 被重新用于另一个图像。任务被取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537944/

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