如何将 ImageView 的 ArrayList 附加到 gridView
How to append an ArrayList of ImageViews into a gridView
我是 android 的新手,我正在尝试弄清楚如何在应用程序上创建 ImageViews 画廊。
我有一个服务器 运行 将图像提供给正确下载到 ImageViews 数组列表中的应用程序。
我只需要将所有这些图像添加到网格视图中。
我知道我需要使用适配器,但我不知道如何使用。
这是我 activity 中的代码(图像在其他地方填充)
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;
}
}
首先,您不应该制作视图的数组列表,因为它对于重用视图来说效率不高。但是,如果您仍然想这样做,那么解决方案是,
public View getView(int position, View convertView, ViewGroup parent){
return images.get(position);
}
我是 android 的新手,我正在尝试弄清楚如何在应用程序上创建 ImageViews 画廊。 我有一个服务器 运行 将图像提供给正确下载到 ImageViews 数组列表中的应用程序。 我只需要将所有这些图像添加到网格视图中。 我知道我需要使用适配器,但我不知道如何使用。
这是我 activity 中的代码(图像在其他地方填充)
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;
}
}
首先,您不应该制作视图的数组列表,因为它对于重用视图来说效率不高。但是,如果您仍然想这样做,那么解决方案是,
public View getView(int position, View convertView, ViewGroup parent){
return images.get(position);
}