Java 无法在android中设置按钮的宽度?

Java 无法在android中设置按钮的宽度?,java,android,xml,Java,Android,Xml,我正在使用以下代码设置应用程序中按钮的宽度: LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(0, 0, 0, (int)(padding*density)); b1.s

我正在使用以下代码设置应用程序中按钮的宽度:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
    LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(0, 0, 0, (int)(padding*density));
    b1.setLayoutParams (layoutParams);
    b1.setWidth((int)(buttonwidth*density)); 
现在,行b1.setWidthintbuttonwidth*density;对按钮的宽度绝对没有影响。我尝试将宽度增加40像素,但按钮大小保持不变。如何以编程方式增加按钮宽度

以下是按钮的XML:

 <Button
    android:id="@+id/login"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:text="@string/login"
     />
下面是屏幕截图:


setWidth不起作用,因为您已通过将按钮的宽度设置为LinearLayout.LayoutParams.FILL\u parent,将其设置为与构造函数上的父宽度相匹配:

尝试将构造函数更改为

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
buttonwidth*density, LinearLayout.LayoutParams.WRAP_CONTENT);

填充的价值是什么?如果你把它设为0会怎么样?丹尼尔,还是没有效果。
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
buttonwidth*density, LinearLayout.LayoutParams.WRAP_CONTENT);