如果你对宽度和高度都使用固定尺寸,你会得到一个正方形,但你会失去 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>
这仅处理第一个按钮,但您可以弄清楚如何完成其余的操作。