做项目时ListView中有图片,异步加载了,但是图片顺序混乱了。
解决办法:
给listView中的imageView加上tag.
具体代码如下:
imageView.setImageBitmap(null);
String imageUrl = listRes.get(position).getImgUrl();
imageView.setTag(imageUrl);
Drawable drawable = asyncImageLoader.loadDrawable(
imageUrl,
new ImageCallback() {
public void imageLoaded(Drawable imageDrawable,String imageUrl) {
ImageView imageViewByTag = (ImageView) listView.findViewWithTag(imageUrl);
if (imageViewByTag != null) {
//MyGridViewAdapter.this.notifyDataSetChanged();
if(imageDrawable !=null){
imageViewByTag.setImageDrawable(imageDrawable);
} else {
imageViewByTag.setImageResource(R.drawable.ic_launcher);
}
}
}
});
if (drawable == null) {
imageView.setImageResource(R.drawable.ic_launcher);
} else {
imageView.setImageDrawable(drawable);
}
你得将你的listView在adapter的构造方法中将其传回来,然后才能在异步加载图片的回调方法中用 listView.findViewWithTag();