0

1 つの線形レイアウトの下で、1 行 (水平) に 8(8) 個のボタンがあります。問題は、これらのボタンが長方形のように見えるのに、正方形のように見えることです。

<Button
        android:id="@+id/button25"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:layout_weight="0.125" 
        android:background="#ffffffff" />

これらの長方形を正方形にするために何をする必要があるか教えてもらえますか?

4

2 に答える 2

1

幅と高さの両方に固定寸法を使用すると、正方形になりますが、LinearLayout の優れた自動サイズ変更機能が失われます。あなたの場合、レイアウトが完了するまで各ボタンの幅はわかりません。View の post() メソッドはあなたの味方です。

final Button button1 = (Button) findViewById(R.id.button25);
first.post( new Runnable() {
    public void run() {
        LinearLayout.LayoutParams params = 
            (LinearLayout.LayoutParams) button1.getLayoutParams();
        params.height = button1.getWidth();
    }
});

ボタンのサイズが正しいことを確認するには、レイアウトを次のようにする必要があります。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="5"> <!-- or however many buttons there are -->
    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content" />
    <!-- other buttons go here -->
</LinearLayout>

これは最初のボタンのみを処理しますが、残りの方法を理解することができます。

于 2013-02-26T17:32:04.550 に答える
1

設定する代わりに

    android:layout_width="match_parent"
    android:layout_height="match_parent"

幅と高さの値を次のように割り当てます。

    android:layout_width="160dip"
    android:layout_height="160dip"

また、削除

   android:layout_weight="0.125" 

したがって、コードは次のようになります

       <Button
    android:id="@+id/button25"
    android:layout_width="160dip"
    android:layout_height="160dip"
    android:layout_gravity="right"

    android:background="#ffffffff" />

できます!

于 2013-02-26T17:01:03.020 に答える