如果對寬度和高度都使用固定尺寸,則會得到一個正方形,但是您失去了自動調整大小的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>
這隻需要照顧的第一個按鈕的,但你可以弄清楚如何做休息。