Eclipse android布局矩阵结构

时间:2015-02-07 03:13:20

标签: java android layout

我想知道如何使用矩阵结构创建布局。 例如:第一行有5个按钮,第二行有5个按钮,依此类推。

我试着没有任何真正的运气。 我的编程平台是Eclipse,Java,android

1 个答案:

答案 0 :(得分:0)

试试TableLayout。 :此布局将其子项排列为行和列。

下面是一个非常基本的TableLayout,它在第一行创建3个按钮,在第二行创建3个按钮。

您可以通过在TableLayout中添加2个TableRow对象来扩展它以在每行中包含5个按钮。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



     <TableRow
                            android:id="@+id/tableRow1"
                            android:layout_height="wrap_content"
                            android:layout_width="match_parent">
                            <Button
                                android:id="@+id/TextView04" android:text="Row 1 Button 1"
                                android:layout_weight="1" android:background="#dcdcdc"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>
                            <Button
                                android:id="@+id/TextView04" android:text="Row 1 Button 2"
                                android:layout_weight="1" android:background="#d3d3d3"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>
                            <Button
                                android:id="@+id/TextView04" android:text="Row 1 Button 3"
                                android:layout_weight="1" android:background="#cac9c9"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>


                        </TableRow>


     <TableRow
                            android:id="@+id/tableRow1"
                            android:layout_height="wrap_content"
                            android:layout_width="match_parent">
                            <Button
                                android:id="@+id/TextView04" android:text="Row 2 Button 1"
                                android:layout_weight="1" android:background="#dcdcdc"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>
                            <Button
                                android:id="@+id/TextView04" android:text="Row 2 Button 2"
                                android:layout_weight="1" android:background="#d3d3d3"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>
                            <Button
                                android:id="@+id/TextView04" android:text="Row 2 Button 3"
                                android:layout_weight="1" android:background="#cac9c9"
                                android:textColor="#000000"
                                android:padding="20dip" android:gravity="center"/>


                        </TableRow>

</TableLayout>

请注意,TableLayout容器不会显示其行,列或单元格的边框线。

如果您想使用java代码动态添加更多行,下面是示例:

TableLayout tl = (TableLayout) findViewById(R.id.yourtablelayout);
/* Create a new row to be added. */
TableRow tr = new TableRow(this);
tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
/* Create a Button to be the row-content. */
Button b = new Button(this);
b.setText("add your button text here ");
b.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
/* Add Button to row. */
tr.addView(b);
/* Add row to TableLayout. */
//tr.setBackgroundResource(R.drawable.sf_gradient_03);
tl.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));