You can make a good combination of TableLayout with TableRow and make rows and columns as you wish very easy.
This is an example with a 2x2 grid with 4 buttons (for example, in LinearLayout):
<TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow3" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/button2" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button3" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/button4" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> </TableLayout>
source share