【问题标题】:wrong image position in custom listview自定义列表视图中的错误图像位置
【发布时间】:2014-06-14 23:24:01
【问题描述】:

正在自定义列表视图上显示图像。正在从 URL 获取图像。要在 imageview 上设置这些图像,我正在使用 Picasso。这是它的文档 http://square.github.io/picasso/

但问题是图像位置没有正确显示。我搜索了很多,但找不到任何合理的解决方案。 Picasso 很适合将远程图像加载到 imageview,但我不知道我的采用者有什么问题。这是我的getview代码

public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.items, parent,
                    false);
            holder = new ViewHolder();
            holder.HeadImage = (ImageView) convertView
                    .findViewById(R.id.headingimg);
            String url = headingimage.get(position);
                    Picasso.with(mContext).load(url).into(holder.HeadImage);
            if (position == 0) {
                convertView.setTag(holder);
            }
        } else {
            holder = (ViewHolder) convertView.getTag();

            }

        return convertView;
    } 

任何有关 picasso 库或没有 picasso 可以解决问题的帮助将不胜感激。谢谢:)

【问题讨论】:

    标签: android listview lazy-loading picasso


    【解决方案1】:

    试试这个:

    public View getView(final int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.items, parent,
                        false);
                holder = new ViewHolder();
                holder.HeadImage = (ImageView) convertView
                        .findViewById(R.id.headingimg);
    
            }
            holder = (ViewHolder) convertView.getTag();
            String url = headingimage.get(position);
            Picasso.with(mContext).load(url).into(holder.HeadImage);
    
            return convertView;
        } 
    

    【讨论】:

    • 每次都只是将图像加载到Imageview,效率不高
    • 你能推荐更好的技术吗?
    • 我也试过删除标签,但结果是一样的:(
    【解决方案2】:
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.items, parent,
                    false);
            holder = new ViewHolder();
            holder.HeadImage = (ImageView) convertView
                    .findViewById(R.id.headingimg);
    
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
    
            }String url = headingimage.get(position);
                    Picasso.with(mContext).load(url).into(holder.HeadImage);
    
        return convertView;
    } 
    

    【讨论】:

    • 我也试过删除标签,但结果是一样的:(
    • 没有标签有重复的条目,我们该如何停止?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多