listview asyncimage不匹配

时间:2013-11-15 14:44:17

标签: android-asynctask universal-image-loader convertview

我为我的项目使用了Android-Universal-Image-Loader(https://github.com/nostra13/Android-Universal-Image-Loader),但是我遇到了一个奇怪的问题:

当我快速滚动或快速滚动时,从网站加载的图像与listview项目不匹配...

我的意思是listview项有时会加载错误的图像,这里是代码:

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

    Map<String, Object> item = mDatasource.get(position);
    View view = convertView;
    final ViewHolder holder;

    if (convertView == null) {
        holder = new ViewHolder();
        view = mInflater.inflate(R.layout.block_list_item, null);

        holder.account_name = (TextView) view.findViewById(R.id.author_name);

        holder.account_avatar = (ImageView) view.findViewById(R.id.view_header);

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

    holder.account_name.setText(StringUtils.convertSafeString(item.get("account_name")));
    String avatarUrl = UrlHelper.HOST + item.get("account_avatar");

    if (!avatarUrl.endsWith(Constants.NO_AVATAR)) {

        holder.account_avatar.setTag(avatarUrl);
        imageLoader.displayImage(avatarUrl,holder.account_avatar, mOptions);
    }

    return view;
}

1 个答案:

答案 0 :(得分:0)

好吧,我不知道这会有所帮助 我有一个类似的问题,但我使用Parse,这意味着我从解析服务器获取我的图像 当我发现我用来获取图像的方法是打开一个新线程而不是UI线程并在后台获取图像(getParseFile()。getDataInBackGround)时,我设法解决了这个问题,当我将其更改为另一个没有使用另一个线程的方法(getParseFile()。getData()),它没有问题。