【问题标题】:How to append an ArrayList of ImageViews into a gridView如何将 ImageViews 的 ArrayList 附加到 gridView
【发布时间】:2017-03-02 03:18:39
【问题描述】:

我是 android 新手,我正在尝试弄清楚如何在应用程序上创建 ImageViews 库。 我有一个正在运行的服务器,它将图像提供给应用程序,该应用程序正确下载到 ImageViews 的 Arraylist 中。 我只需要将所有这些图像添加到网格视图中。 我知道我需要使用适配器,但我不知道如何使用。

这是我在活动中的代码(图片填充在其他地方)

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;
    }
}

【问题讨论】:

  • 您应该创建 URL 或可绘制对象的数组列表,而不是创建图像视图的数组列表(无论您要加载什么)

标签: java android gridview adaptor


【解决方案1】:

首先,您不应该创建视图数组列表,因为它不会有效地重用视图。但是,如果您仍然想这样做,那么解决方案是,

    public View getView(int position, View convertView, ViewGroup parent){
        return images.get(position);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2016-12-16
    • 2020-04-15
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    相关资源
    最近更新 更多