1

コードが一般的ではないことがわかるように、テーブルレイアウト(すべてのビューの幅と高さが等しい)に基づいた一般的な5X5ビューを作成したいと思います。何をすべきか?塗りつぶしの親と一致する親で遊んでみました...助けてください。そして、tableLaayoutの幅と高さが等しくなるようにします。

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
tools:context=".MainActivity" >

<TableLayout
    android:id="@+id/tableBoard"
    android:layout_width="wrap_content"
    android:layout_height="313dp"
    android:layout_centerHorizontal="true" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <com.example.com.worfield.barak.Square
            android:id="@+id/view1"
            android:layout_width="60dp"
            android:layout_height=""
            android:layout_margin="1dp"

            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view2"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"                         
            android:background="@drawable/square" />
        <com.example.com.worfield.barak.Square
            android:id="@+id/view3"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"

            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
           android:id="@+id/view4"
           android:layout_width="60dp"
           android:layout_height="60dp"
           android:layout_margin="1dp"

           android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view5"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"

            android:background="@drawable/square" />

    </TableRow>

    <TableRow
        android:layout_weight="1"
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <com.example.com.worfield.barak.Square
            android:id="@+id/view6"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:layout_weight="0.24"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view7"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view8"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view9"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view10"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />
    </TableRow>

    <TableRow
        android:layout_weight="1"
        android:id="@+id/tableRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <com.example.com.worfield.barak.Square
            android:id="@+id/view11"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view12"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view13"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view14"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view15"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />
    </TableRow>

    <TableRow
        android:layout_weight="1"
        android:id="@+id/tableRow4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <com.example.com.worfield.barak.Square
            android:id="@+id/view16"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view17"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view18"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view19"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view20"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />
    </TableRow>

    <TableRow
        android:layout_weight="1"
        android:id="@+id/tableRow5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <com.example.com.worfield.barak.Square
            android:id="@+id/view21"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view22"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

        <com.example.com.worfield.barak.Square
            android:id="@+id/view23"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view24"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"

            android:background="@drawable/square" />

       <com.example.com.worfield.barak.Square
            android:id="@+id/view25"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="1dp"
            android:background="@drawable/square" />
    </TableRow>
</TableLayout>

<Button
    android:id="@+id/bStart"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tableBoard"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="16dp"
    android:text="Do Something" />

<TextView
    android:id="@+id/tvError"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/bStart"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="18dp"
    android:text="TextView" />

4

1 に答える 1

2

正方形にしかなり得ない特別なビューを作成します。それに応じてonMeasureメソッドをオーバーライドする必要があります。たとえば、次のことができます。

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    //final int height = getMeasuredHeight();
    final int width = getMeasuredWidth();

    setMeasuredDimension(width, width);
}

TableRowはLinearLayoutです。したがって、layout_weightを使用して、5人の子を水平方向に均等に広げることができます。行のすべての子に対して、layout_width="0"およびlayout_weight="1"を設定します。測定すると、各子の幅はtableRowの幅の1/5になり、子の高さはその幅と等しくなります。

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <TableLayout
        android:id="@+id/tableBoard"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" >

        <TableRow
            android:id="@+id/tableRow5"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <com.kamagames.pokerist.Squire
                android:id="@+id/view25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="1dp"
                android:layout_weight="1"
                android:background="#00ff00" />

            <com.kamagames.pokerist.Squire
                android:id="@+id/view25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="1dp"
                android:layout_weight="1"
                android:background="#ff0000" />

            <com.kamagames.pokerist.Squire
                android:id="@+id/view25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="1dp"
                android:layout_weight="1"
                android:background="#0000ff" />

            <com.kamagames.pokerist.Squire
                android:id="@+id/view25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="1dp"
                android:layout_weight="1"
                android:background="#ffff00" />

            <com.kamagames.pokerist.Squire
                android:id="@+id/view25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_margin="1dp"
                android:layout_weight="1"
                android:background="#00ffff" />
        </TableRow>
    </TableLayout>
</RelativeLayout>
于 2013-01-15T11:03:28.523 に答える