幅と高さの両方に固定寸法を使用すると、正方形になりますが、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>
これは最初のボタンのみを処理しますが、残りの方法を理解することができます。