Android ListView图像未按顺序显示
我正在使用Universal Image Loader在我的listView中显示缩略图,但当我快速向上/向下滚动图像时,图像会发生相互更改,这很烦人,请帮助我完成。。 谢谢 我的显示图像配置:Android ListView图像未按顺序显示,android,listview,universal-image-loader,Android,Listview,Universal Image Loader,我正在使用Universal Image Loader在我的listView中显示缩略图,但当我快速向上/向下滚动图像时,图像会发生相互更改,这很烦人,请帮助我完成。。 谢谢 我的显示图像配置: DisplayImageOptions displayimageOptions = new DisplayImageOptions.Builder().cacheInMemory(true).bitmapConfig(Bitmap.Config.RGB_565). dela
DisplayImageOptions displayimageOptions = new DisplayImageOptions.Builder().cacheInMemory(true).bitmapConfig(Bitmap.Config.RGB_565).
delayBeforeLoading(1000) .cacheOnDisc(true).imageScaleType(ImageScaleType.EXACTLY)
.resetViewBeforeLoading().build();
和ImageLoader配置:
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.threadPoolSize(15)
.threadPriority(Thread.NORM_PRIORITY) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.memoryCacheSize(20 * 1024 * 1024)
.memoryCacheSizePercentage(25) // default
.discCacheSize(20 * 1024 * 1024)
.discCacheFileCount(100)
.discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.build();
ImageLoader.getInstance().init(config);
适配器的getView:
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null){
vi = inflater.inflate(R.layout.list_layout, null);
}
TextView title = (TextView)vi.findViewById(R.id.tv2); // title
final ImageView thumb_image=(ImageView)vi.findViewById(R.id.img); // thumb image
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
// Setting all values in listview
title.setText(song.get(DisplayMessage.KEY_TITLE));
Log.w(null, song.get(DisplayMessage.KEY_THUMB_URL));
ImageLoader imageLoader = ImageLoader.getInstance();
Log.w("null",song.get(DisplayMessage.KEY_THUMB_URL));
ImageSize targetSize = new ImageSize(70, 70);
final ImageAware imageAware = new ImageViewAware(thumb_image, false);
// Utils.imageLoader.displayImage("file:///"+song.get(DisplayMessage.KEY_THUMB_URL), imageAware);
imageLoader.loadImage("file:///"+song.get(DisplayMessage.KEY_THUMB_URL), targetSize, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
imageAware.setImageBitmap(ThumbnailUtils.extractThumbnail(loadedImage, 70, 70));
}
});
return vi;
}
在getView方法中,只需删除此ifconvertView==nullcondition,然后再次尝试运行。就像下面一样-
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
//if(convertView==null){
vi = inflater.inflate(R.layout.list_layout, null);
//}
TextView title = (TextView)vi.findViewById(R.id.tv2); // title
final ImageView thumb_image=(ImageView)vi.findViewById(R.id.img); // thumb image
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
// Setting all values in listview
title.setText(song.get(DisplayMessage.KEY_TITLE));
Log.w(null, song.get(DisplayMessage.KEY_THUMB_URL));
ImageLoader imageLoader = ImageLoader.getInstance();
Log.w("null",song.get(DisplayMessage.KEY_THUMB_URL));
ImageSize targetSize = new ImageSize(70, 70);
final ImageAware imageAware = new ImageViewAware(thumb_image, false);
// Utils.imageLoader.displayImage("file:///"+song.get(DisplayMessage.KEY_THUMB_URL),
imageAware);
imageLoader.loadImage("file:///"+song.get(DisplayMessage.KEY_THUMB_URL), targetSize, new
SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
imageAware.setImageBitmap(ThumbnailUtils.extractThumbnail(loadedImage, 70, 70));
}
});
return vi;
}
我也试过了,但是运气不好!。。现在我正在使用毕加索,现在图像加载非常好。无论如何,谢谢你的支持reply@kalimba好啊我也不使用imageLoader。但很好,你的问题解决了。快乐编码: