ListView показывает пустое пространство вместо локального изображения - PullRequest
0 голосов
/ 19 сентября 2011

Я пытаюсь загрузить список только с локальными изображениями и текстами, все работает нормально, я имею в виду, что могу хорошо видеть текст, но в поле изображения я не вижу изображение.

локальные маршруты изображений: "/mnt/sdcard/Imagenes/pic1.jpg/", "/mnt/sdcard/Imagenes/pic2.jpg/" и т. Д.

Я, должно быть, делаю что-то не так и не могу понять, что это такое. любая помощь будет признательна, спасибо ...

Вот как я устанавливаю адаптер в список

FotosAdapter FotoAdapter = new FotosAdapter(this, R.layout.galeriafotos, listafotos);
listado.setAdapter(FotoAdapter);

и адаптер

public class FotosAdapter extends ArrayAdapter<Foto> {

    private ArrayList<Foto> items;


    public FotosAdapter(Context context, int textViewResourceId, ArrayList<Foto> items) {
        super(context, textViewResourceId, items);
        this.items = items;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        ContenedorVista contenedor;

        if (convertView == null) {
            LayoutInflater infla = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infla.inflate(R.layout.galeriafotos, null);

            contenedor = new ContenedorVista();

            contenedor.txtObservacion = (TextView) convertView.findViewById(R.id.observaciones);
            contenedor.imgFotos = (ImageView) convertView.findViewById(R.id.fotosexpediente);

            convertView.setTag(contenedor);

        }else{
            contenedor = (ContenedorVista)convertView.getTag();
        }

        Foto o = items.get(position);

        if (o != null) {

            contenedor.txtObservacion.setText(o.getObservaciones());

            contenedor.imgFotos.setImageURI(o.getUriPath());


        }
        return convertView;
    }

    static class ContenedorVista{

        TextView txtObservacion;
        ImageView imgFotos;


    }

}

Вот как я устанавливаю массив.

listafotos = new ArrayList ();

            ImagesAdapter ia = new ImagesAdapter(Common.dbAdapter.getDatabase());
            Cursor cur =  ia.getFiltered(-1, -1, CodExp, null, null, Common.currentUser.getIdUsuario());
            cur.moveToFirst();
            while(!cur.isAfterLast()){

                try{
                    Foto objExpediente = new Foto();                    
                    objExpediente.setUriPath(Uri.parse(cur.getString(cur.getColumnIndex("Path")) + cur.getString(cur.getColumnIndex("_id")) + ".jpg")); 
                    objExpediente.setObservaciones(cur.getString(cur.getColumnIndex("Observaciones")));

                    listafotos.add(objExpediente);

                }catch(Exception ex){
                    Common.log("e",ex.toString());
                }
                cur.moveToNext();

            }
            cur.close();

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

URI для файла должен начинаться с «file: //», поэтому ваш seturi, вероятно, должен быть:

objExpediente.setUriPath(Uri.parse("file://" + cur.getString(cur.getColumnIndex("Path")) + cur.getString(cur.getColumnIndex("_id")) + ".jpg")); 
0 голосов
/ 19 сентября 2011

Для меня это меньше информации, чтобы помочь.В коде отсутствует заполнение items-ArrayList.

Когда текст отображается, а фотография не отображается, это означает, что введено последнее условие if.Попробуйте поместить Log-Output в последнее предложение if и выведите URI, который вы используете.

С уважением

...