将两个button设置为相同的宽度,而不考虑屏幕尺寸

好的,我有两个线性布局的button:

<LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent"> <Button android:id="@+id/aktiviraj_paket" android:text="Aktiviraj" android:layout_height="40sp" android:layout_width="160sp" android:background="@drawable/my_border3" android:onClick="myClickHandle"></Button> <Button android:id="@+id/deaktiviraj_paket" android:text="Deaktiviraj" android:layout_height="40sp" android:layout_width="fill_parent" android:background="@drawable/my_border3" android:onClick="myClickHandle"> </Button> </LinearLayout> 

所以事情是,如果我在两个button上使用填充父项,它们是相互之间的一个,所以我做了第一个button160sp宽度,第二个是fill_parent。 如果在4英寸或更小的屏幕上显示,button的大小相同,但如果我在平板电脑(10英寸)上尝试此操作,则第一个button的宽度将保持为160sp,而第二个button的宽度将延伸到屏幕的末端(因为fill_parent)。 我可以做到这一点,所以无论屏幕大小如何,两个button都可以是大小的。

Button上使用android:layout_weight="1" 。 在两者上设置android:layout_width="0dp" 。 由于两个button现在具有相同的权重,现在它们每个都具有父宽度的一半。

你可以在这里find更多: http : //developer.android.com/guide/topics/ui/layout/linear.html

如果你想要做的是使所有button的最宽button的宽度,设置重量是不会这样做的。 相反,你可以把所有的button放在TableLayout中:

  <TableLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/short_text" /> </TableRow> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/enter_manually" /> </TableRow> </TableLayout> 

这个布局将显示2个button,一个在另一个之上,宽度相同。

 Display display=getWindowManager().getDefaultDisplay(); int width=display.getWidth(); btn1.setWidth(width/2); btn2.seTwidth(width/2); 

在xml文件中设置任何东西,然后首先find设备的宽度,然后将宽度设置为两个button现在在每个设备上,他们将看起来完全相同

设置为每个button:

 android:layout_weight="0.5" android:layout_width="0dp" 
 android:layout_weight="0.5" android:layout_width="0dp 

它正在工作

在包含布局中设置android:layout_weight =“1”线性布局应该将android:orientation设置为水平。 然后里面的button应该有以下内容:

机器人:layout_width = “0dp”

机器人:layout_weight = “0.5”