用户界面-Android:UI线性布局和按钮



我在一个线性布局下的一行(水平(中有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" />

有人能告诉我需要做什么,让这些矩形变成正方形吗。

如果宽度和高度都使用固定尺寸,你会得到一个正方形,但你会失去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>

这只负责第一个按钮,但您可以弄清楚如何完成其余的操作。

不设置

    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" />

它有效!

相关内容

  • 没有找到相关文章

最新更新