如何在Android Studio中以编程方式更改按钮的宽度

时间:2019-04-11 01:44:17

标签: java android

LinearLayout中有四个按钮。 我想将这些Button的宽度设置为25%。 该怎么做?

3 个答案:

答案 0 :(得分:0)

您无需为此编写代码。只需设置int a = 1; float b = 1.0f; WriteLine((float)a==b); // promotes a to float ,分别设置LinearLayout.weight_sum=4Button.layout_weight=1

答案 1 :(得分:0)

这是一个解决方案

android:weightSum设置为父布局/视图,并将android:layout_weight设置为子布局/视图。 注意:子布局/视图的宽度android:layout_width必须设置为0。

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="4"  
        android:orientation="horizontal">

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

    </LinearLayout>

答案 2 :(得分:0)

要在运行时更改宽度,请使用以下代码:

button_1=findViewById(R.id.button_1);
button_1.setLayoutParams(new LinearLayout.LayoutParams(100,100));

,但您要将4个按钮的宽度设置为25%。

现在,您可以将weight属性传递到LayoutParams中。

相等的运行时语法为:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT, weight in float);
yourView.setLayoutParams(param);

您可以使用以下代码在运行时更改按钮的宽度:

Button button1=findViewById(R.id.button1);
Button button2=findViewById(R.id.button2);
Button button3=findViewById(R.id.button3);
Button button4=findViewById(R.id.button4);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
button1.setLayoutParams(param);
button2.setLayoutParams(param);
button3.setLayoutParams(param);
button4.setLayoutParams(param);

希望它对您有用。