有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何创建自定义gridview,如图所示

我是一个安卓编程新手,已经学会了一些基本知识

现在,我想通过java端而不是xml创建一个视图,如下面的链接所示

Example 2X2 Square Image

我可以使用按钮或图像在xml中显示这样的图像

但是,我想通过java端动态地加入,所以我不确定要通过java端实现这一点,应该参考什么

请引导我。谢谢


共 (3) 个答案

  1. # 1 楼答案

          List<Strings> rowListItem = getAllItemList();
          GridLayoutManager gLayout = new GridLayoutManager(this, 4);
          RecyclerView rView = (RecyclerView)findViewById(R.id.recycler_view);
          rView.setHasFixedSize(true);
          rView.setLayoutManager(gLayout);
    

    更多信息请参见here

  2. # 2 楼答案

    您可以在view.xml中创建一个gridview,如下所示:

    <GridView
        android:id="@+id/grid_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:horizontalSpacing="16dp"
        android:numColumns="2"
        android:verticalSpacing="16dp" />
    

    之后,您可以创建一个customAdapter来做任何您想做的事情,如以下所示:

    public class GridAdapter extends BaseAdapter {
    
    public GridAdapter() {
        //constructor for your adapter
    }
    
    @Override
    public int getCount() {
        return chargeProduct.getProducts().size();
    }
    
    @Override
    public Object getItem(int position) {
        return item;
    }
    
    @Override
    public long getItemId(int position) {
        return id;
    }
    
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
    
        LayoutInflater inflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
        View gridView;
    
        if (convertView == null) {
    
            gridView = new View(mContext);
    
            gridView = inflater.inflate(R.layout.grid_item_view, null);
    
        } else {
            gridView = (View) convertView;
        }
        //Create view items and do the things you want here
    
        return gridView;
    }
    

    您还需要为每个网格项创建grid_item_view布局,它可以是您想要的任何布局。 最后,您需要使用以下连接线将视图连接到适配器:

    gridAdapter = new GridAdapter();
    customGridView.setAdapter(gridAdapter);
    

    关于如何开始创建网格视图,您也可以参考以下教程:

    一,tutorialspoint

    二,getting started on gridview

    要为您的网格视图创建自定义适配器,您可以参考以下内容:

    creating a custom adapter for gridview

    希望这有帮助

  3. # 3 楼答案

    使用Recyclerview(LayoutManager是网格)

      GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2);
            recylerview.setLayoutManager(gridLayoutManager);