Таблица кнопок (например 8x8) в Android - PullRequest
0 голосов
/ 19 ноября 2011

Как я могу сделать Layout с Buttons в матрице, например:

Button Button

Button Button

Iхочу иметь доступ к этим Buttons по циклу (например, for()), потому что я хочу динамически изменять текст этих Buttons.

Я попытался сделать TableLayout иTableRow, но ничего не работает.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2011

Сделай так:

<RelativeLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">

    <ImageView
        android:layout_height="76dp"
        android:src="@drawable/i1"
        android:id="@+id/imgview11"
        android:layout_width="88dp"/>
    <ImageView
        android:id="@+id/imgview12"
        android:src="@drawable/i2"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
    </ImageView>
    <ImageView
        android:id="@+id/imgview13"
        android:src="@drawable/i3"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true">
    </ImageView>
    <ImageView
        android:id="@+id/imgview21"
        android:src="@drawable/i4"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_below="@+id/imgview11"
        android:layout_alignRight="@+id/imgview11">
    </ImageView>
    <ImageView
        android:id="@+id/imgview22"
        android:src="@drawable/i5"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_below="@+id/imgview12"
        android:layout_alignLeft="@+id/imgview12">
    </ImageView>
    <ImageView
        android:id="@+id/imgview23"
        android:src="@drawable/i6"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_below="@+id/imgview12"
        android:layout_alignParentRight="true"
        android:layout_alignLeft="@+id/imgview13">
    </ImageView>
    <ImageView
        android:id="@+id/imgview31"
        android:src="@drawable/i7"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_alignParentBottom="true"
        android:layout_toLeftOf="@+id/imgview22">
    </ImageView>
    <ImageView
        android:id="@+id/imgview32"
        android:src="@drawable/i8"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_below="@+id/imgview21"
        android:layout_alignLeft="@+id/imgview12">
    </ImageView>
    <ImageView
        android:id="@+id/imgview33"
        android:src="@drawable/empty"
        android:layout_width="88dp"
        android:layout_height="76dp"
        android:layout_below="@+id/imgview22"
        android:layout_alignParentRight="true">
    </ImageView>
</RelativeLayout>

Я использую ImageView здесь. Вы можете изменить на кнопку вместо ImageView.

0 голосов
/ 19 ноября 2011

Вы можете использовать TableLayout.

Проверьте здесь для объяснения:

http://developer.android.com/resources/tutorials/views/hello-tablelayout.html

Вот пример:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:orientation="vertical" 
    android:layout_height="fill_parent" 
    android:layout_width="match_parent"
    android:id="@+id/mainLayout">

<TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1">
    <TableRow 
        android:id="@+id/tableRow2" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent">
        <Button
             android:layout_height="wrap_content" 
             android:id="@+id/button1" 
             android:layout_width="wrap_content" 
             android:text="@string/first_color">
        </Button>
        <Button 
            android:id="@+id/button2" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="@string/second_color">
        </Button>
        <Button 
            android:id="@+id/button3" 
            android:layout_width="wrap_content" 
            android:text="@string/third_color" 
            android:layout_height="wrap_content">
        </Button>
    </TableRow>
    <TableRow 
        android:id="@+id/tableRow3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content">
        <Button 
            android:id="@+id/button5" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="@string/tolerance">
        </Button>
    </TableRow>
</TableLayout>
</LinearLayou>
...