Установка Android. Полоса ширины на половине экрана.

Как настроить (в формате XML), что кнопка будет иметь ширину половины экрана. Я нашел только обернуть содержимое, сопоставить родительский (заполняет весь экран) и точное количество dp, например: 50dp. Как установить его, точно удерживая экран?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="2" > <Button android:id="@+id/buttonCollect" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="8dp" android:paddingRight="8dp" android:text="przycisk" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="Button" /> 

Это можно сделать, если на вашем макете есть два виджета: используйте LinearLayout и установите layout_width="fill_parent" в обоих виджетах (Button и другой виджет) и установите layout_weight также на то же значение. И LinearLayout будет разделять ширину между двумя виджетами одинаково, и ваша кнопка займет половину экрана.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/buttonCollect" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="8dp" android:paddingRight="8dp" android:text="przycisk" /> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:text="Button" /> 

Это невозможно в XML. Однако вы можете сделать это на Java, получив ширину экрана с помощью DisplayMetrics , разделив его на 2 и установив в качестве ширины кнопки. Что-то вроде этого:

 Button button = (Button) findViewById(R.id.button); DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int width = displaymetrics.widthPixels; int buttonWidth = width/2; //Apply this to your button using the LayoutParams for whichever layout you have. 

Используйте текстовое окно.

 <TextView android:id="@+id/textViewHelper" android:layout_width="0dp" android:layout_height="0dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" /> 

Затем добавьте две кнопки или только одну из них влево и / или вправо от нее.

 <Button android:id="@+id/saveList" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignTop="@+id/deleteAllPlaylists" android:layout_toRightOf="@+id/textViewHelper" android:text="@string/save_temp_playlist" /> <Button android:id="@+id/deleteAllPlaylists" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/textViewHelper" android:text="@string/delete_all_playlists" /> 

Ответ был найден здесь

Мой первый пост в стеке, надеюсь, что я помог XD