Android列表视图随机显示图像

时间:2012-02-05 23:11:53

标签: android android-listview thumbnails

我有一个文件选择器(根据需要工作)但我想在适当的时候将缩略图添加到列表中。它适用于前几个图像,但随后的文件(和文件夹)项目不是图像,不应该有缩略图拍摄已经加载的随机图像。整个文件列表最终会在重复滚动后拍摄图像。

这是列表视图的已知问题吗?是否有显示缩略图的标准方式?我的代码坏了吗?

下面是为每个列表项分配文件名和缩略图的代码 - 该类扩展了ArrayAdapter

public View getView(int position, View convertView, ViewGroup parent)
{
    View v = convertView;
    if (v == null)
    {
        LayoutInflater vi = (LayoutInflater) c
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(id, null);
    }
    final Option o = items.get(position);
    if (o != null)
    {
        TextView t1 = (TextView) v.findViewById(R.id.TextView01);
        TextView t2 = (TextView) v.findViewById(R.id.TextView02);
        ImageView img1 = (ImageView) v.findViewById(R.id.imageView1);
        try
        {
            if(o.getData()!="Folder" && (o.getPath().contains(".jpg") || o.getPath().contains(".gif") || o.getPath().contains(".png")))
                img1.setImageBitmap(getPreview(o.getPath()));
        }
        catch (Exception e)
        {
            Log.w("Image failed in File Viewer", e);
        }
        if (t1 != null)
            t1.setText(o.getName());
        if (t2 != null)
            t2.setText(o.getData());

    }
    return v;
}

1 个答案:

答案 0 :(得分:3)

问题在于您正在重复使用您的观点(这是正确的方法)。因此,当您开始滚动时,它将重用之前显示的视图。所以你要做的就是在没有设置时重置视图中的图像/文本。