我有一个文件选择器(根据需要工作),但我想在适当的时候将缩略图添加到列表中。它适用于前几张图像,但随后不是图像且不应具有缩略图的随机文件(和文件夹)项目会采用已加载的随机图像。整个文件列表在反复滚动后最终获取图像。
这是 ListView 的已知问题吗?是否有显示缩略图的标准方式?我的代码刚刚损坏了吗?
下面是将文件名和缩略图分配给每个列表项的代码 - 该类扩展了 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;
}
最佳答案
问题是您正在重用您的 View (这是正确的方法)。因此,当您开始滚动时,它将重用之前显示的 View 。因此,您所要做的就是在未设置 View 时重置 View 中的图像/文本。
关于Android ListView 随机显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153981/