在Android中设置Button的宽度

Moh*_*nde 16 java xml size android

如何为Android按钮设置固定宽度?每次我尝试设置固定宽度时,它都会填充当前父级(RelativeView).这是我的XML:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout android:id="@+id/relativelayout" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

    <EditText android:layout_height="wrap_content" android:editable="false" android:layout_width="fill_parent" android:id="@+id/output"></EditText>

    <Button android:layout_height="wrap_content" android:id="@+id/Button01" android:layout_below="@id/output" android:text="7" android:layout_width="wrap_content"></Button>
    <Button android:layout_below="@id/output" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button02" android:layout_toRightOf="@+id/Button01" android:text="8"></Button>
    <Button android:layout_below="@id/output" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Button03" android:layout_toRightOf="@+id/Button02" android:text="9"></Button>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我怎么给它一个固定的宽度?
更新
说我有几个按钮,我想要彼此相同的尺寸和整个视图的1/3(肖像),然后我想要一个宽度加倍的按钮.然后是一个高度加倍的按钮.我怎么能完成另一个手动调整它们的尺寸?

Jea*_*oin 13

要完成您想要的任务,您可以使用具有权重的LinearLayout.例如,您可以将WeightSum设为9.如果您将三个按钮的重量分别设置为1.它们将占据该位置的1/3,您可以将2放置为另一个对象.这个对象的大小是另一个的两倍.

http://developer.android.com/reference/android/widget/LinearLayout.html#setWeightSum(float)

编辑:我想补充一点,为了使其正常工作,您必须将宽度或高度设置为0px(取决于它是水平布局还是垂直布局).


Rof*_*ion 12

而不是android:layout_width="wrap_content"你可以使用固定的像素大小,例如android:layout_width="20px"或更好的方式:android:layout_width="20dp"

您还可以在代码中以编程方式设置宽度: Button.setWidth(int width)

关于你的更新:

我不知道这是不是一个好的解决方案,但我的工作.你可以用

 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics);
Run Code Online (Sandbox Code Playgroud)

读取屏幕分辨率,然后根据metrics.widthPixel和metrics.heightPixel设置按钮大小


Muh*_*Ali 6

使用minWidth和minHeight设置按钮的宽度和高度.

<Button android:layout_height="wrap_content"
 android:id="@+id/Button01" 
 android:layout_below="@id/output" 
 android:text="7" 
 android:minWidth="100dp">
</Button>
Run Code Online (Sandbox Code Playgroud)