Как добавить ArrayList ImageViews в gridView

Я новичок в Android, и я пытаюсь выяснить, как создать галерею ImageViews в приложении. У меня работает сервер, который передает изображения в приложение, которое корректно загружается в Arraylist of ImageViews. Мне просто нужно добавить все эти изображения в виде сетки. Я знаю, что мне нужно использовать адаптер, но я не знаю как.

Это код, который я имею в моей деятельности (изображения заполняются где-то еще)

ArrayList<ImageView> images = new ArrayList<>();

GridView table = (GridView) findViewById(R.id.table);
table.setAdapter(new ImageAdaptor(this.getBaseContext(), images));

И это мой адаптер

public class ImageAdaptor extends BaseAdapter{
    private Context context;
    private ArrayList<ImageView> images;

    public ImageAdaptor(Context context, ArrayList<ImageView> images){
        this.context = context;
        this.images = images;
    }

    public int getCount(){
        return this.images.size();
    }

    public Object getItem(int position){
        return this.images.get(position);
    }

    public long getItemId(int position){
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent){
        ImageView image;
        if (convertView == null){
            image = new ImageView(this.context);
            image.setLayoutParams(new GridView.LayoutParams(115, 115));
            image.setScaleType(ImageView.ScaleType.CENTER_CROP);
        }else{
            image = (ImageView) convertView;
        }
        return image;
    }
}

1 ответ

Решение

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

    public View getView(int position, View convertView, ViewGroup parent){
        return images.get(position);
    }
Другие вопросы по тегам