我有一个文件选择器(根据需要工作)但我想在适当的时候将缩略图添加到列表中。它适用于前几个图像,但随后的文件(和文件夹)项目不是图像,不应该有缩略图拍摄已经加载的随机图像。整个文件列表最终会在重复滚动后拍摄图像。
这是列表视图的已知问题吗?是否有显示缩略图的标准方式?我的代码坏了吗?
下面是为每个列表项分配文件名和缩略图的代码 - 该类扩展了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;
}
答案 0 :(得分:3)
问题在于您正在重复使用您的观点(这是正确的方法)。因此,当您开始滚动时,它将重用之前显示的视图。所以你要做的就是在没有设置时重置视图中的图像/文本。