【发布时间】:2014-06-19 09:18:25
【问题描述】:
我有一个 ListView 和 12 个 ImageView。
每个 ImageView 都有从 url 加载的不同图像。图像被打乱,有时我滚动或不滚动都会重复。
我尝试了 10 种其他方法来解决这个问题,但都没有成功。
这是我下载并显示图像的代码:
private static class ViewHolder {
ImageView imageViewPhoto;
Bitmap photo;
boolean isDownloading;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null) {
// ...classical view holder and other operations...
if (!viewHolder.isDownloading) {
viewHolder.isDownloading = true;
IImageDownload downloadInterface = new IImageDownload() {
@Override
public void onError(VolleyError error, String url) {
}
@Override
public void onDownloaded(Bitmap response, String url) {
viewHolder.photo = response;
notifyDataSetChanged();
}
};
imageDownloader.downloadImage(dataList.get(position).getPhotoPath(), true, downloadInterface);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (viewHolder.photo != null) {
viewHolder.imageViewPhoto.setImageBitmap(viewHolder.photo);
} else {
viewHolder.imageViewPhoto.setImageResource(R.drawable.gray_background);
}
}
提前感谢您的任何想法!
【问题讨论】:
-
不是您问题的答案,但您应该考虑使用 Picasso 之类的东西将图像异步加载到图像视图中。您可以将您发布的所有代码更改为一行。
标签: android listview android-listview android-imageview android-image