在Android中设置Button的宽度

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

       

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

  • 获取Android文件资源的大小?
  • 如何在Google Maps V2 Android中的标记上指定图标的大小
  • 要完成您想要的任务,您可以使用具有权重的LinearLayout。 例如,您可以将WeightSum设为9.如果您将三个按钮的重量分别设置为1。 它们将占据该位置的1/3,您可以将2作为另一个对象。 这个对象将是另一个对象的两倍。

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

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

    而不是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); 

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

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

      

    动态设置按钮的最佳和最简单的方法是

      Button index=new Button(this); int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics()); int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics()); 

    高度和宽度,以像素为单位px 。 45是dp的高度,42是dp的宽度。

      index.setLayoutParams(new .LayoutParams(width, height)); 

    因此,例如,如果您将按钮放在TableLayout中的TableRow中,则应将其设置为TableRow.LayoutParams

      index.setLayoutParams(new TableRow.LayoutParams(width, height)); 

    在该代码中添加android:minwidth行。