【问题标题】:Dynamic add images in on last imageview click Grid view在最后一个图像视图中动态添加图像单击网格视图
【发布时间】:2013-12-17 06:55:02
【问题描述】:

我是 android 新手,不知道如何使用 gridview。我希望项目末尾的网格视图采用以下图像格式.这个gridview有imageview,s.它应该动态添加imageview。 请帮忙

【问题讨论】:

  • 你使用自定义适配器来设置网格视图数据??

标签: android gridview imageview


【解决方案1】:
  • GridView 由适配器支持。看BaseAdapterListAdapter
  • 适配器由数据集(例如列表)支持
  • 您使用适配器的getView() 函数为数据集中的给定位置生成视图

您需要做的就是创建一个包含 N+1 个元素的列表,其中 N 是您要显示的图像数量,+1 是添加按钮。

添加图像后,您将其添加到列表中倒数第二个位置。然后调用适配器notifyDataSetChanged() 函数。这将使用新的支持数据刷新 GridView。

【讨论】:

    【解决方案2】:

    尝试以下适配器:

    活动中:

    private List<Bitmap> images=new List<Bitmap>();
    images.add(<LastImage>);
    MyAdapter adapter=new MyAdapter(this,images);
    gridView.setAdapter(adapter);
    

    添加新项目时:

    adapter.addImage(<NewBitmap>);
    

    适配器:

    public class MyAdapter extends ArrayAdapter<Bitmap> {
    
        private List<Bitmap> images;
        private Context context;
    
        public MyAdapter(Context context,
                List<Bitmap> images) {
            super(context,0, images);
            this.images = images;
            this.context = context;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView image=(ImageView)convertView;
            if (image == null) {
                image = new ImageView(context);
            }
            imageView.setImageBitmap(images.get(position));
            return imageView;
        }
    
        public void addImage(Bitmap image) {
            images.add(images.size()-1,image);
            this.notifyDataSetChanged();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 2021-01-09
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多