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

时间:2017-06-12 10:19:40

标签: java android gridview android-drawable

我是android编程的新手,已经学会了基础知识。

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

Example 2X2 Square Image

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

但是,我想动态地通过java方面,所以我不确定要通过java方面来完成这个。

请指导我。感谢。

3 个答案:

答案 0 :(得分:0)

使用Recyclerview(LayoutManager是网格)

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

答案 1 :(得分:0)

您可以在void dummy() { throw; } TEST(errorhandlingInterpolator, NOTtoolargeInput) { ASSERT_NO_THROW(throw); } 中创建gridview,如下所示:

view.xml

之后,您可以创建一个<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

您也可以参考这些教程,了解如何开始创建 GridView

1。tutorialspoint

2。getting started on gridview

并为 GridView 创建自定义适配器,您可以参考:

creating a custom adapter for gridview

希望这会有所帮助。

答案 2 :(得分:0)

      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