Представление списка Android показывает изображения в случайном порядке - PullRequest
1 голос
/ 06 февраля 2012

У меня есть селектор файлов (который работает по мере необходимости), но я хотел добавить миниатюры в список при необходимости.Он работает достаточно хорошо для первых нескольких изображений, но затем для случайных элементов файла (и папки), которые не являются изображениями и не должны иметь миниатюр, которые принимают случайные изображения, которые уже загружены.Весь список файлов в конечном итоге получает изображение после повторной прокрутки.

Это известная проблема с представлениями списка?Есть ли стандартный способ показа миниатюр?Мой код только что поврежден?

Ниже приведен код, присваивающий имена файлов и миниатюры каждому элементу списка - класс расширяет 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 Ответ

3 голосов
/ 06 февраля 2012

Проблема в том, что вы повторно используете свои взгляды (это правильный путь). Поэтому, когда вы начнете прокручивать, он будет использовать виды, которые были показаны ранее. Поэтому все, что вам нужно сделать, это сбросить изображения / тексты в ваших представлениях, когда вы их не устанавливаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...