Я нашел, как создавать круглые кнопки ImageButton с использованием фона Shape, и я нашел, как равномерно размещать кнопки в LinearLayout, установив ширину на 0dp и вес на 1. Но я не могу комбинировать оба, поэтому либо круглые кнопки являются неравномерное расстояние, дБ

или они расположены равномерно, но не круглые

Кажется, дополнительное пространство идет на внутреннюю кнопку, а не на поля. Как я могу заставить LinearLayout выделять новое пустое пространство по полям, а не по виду?
Это макет, который дает мне второе изображение выше
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal">
<ImageButton
android:layout_width = "0dp"
android:layout_weight = "1"
android:layout_height = "wrap_content"
app:srcCompat = "@drawable/ic_add_black_24dp"
android:background = "@drawable/rounded"/>
<ImageButton
android:layout_width = "0dp"
android:layout_weight = "1"
android:layout_height = "wrap_content"
app:srcCompat = "@drawable/ic_add_black_24dp"
android:background = "@drawable/rounded"/>
<ImageButton
android:layout_width = "0dp"
android:layout_weight = "1"
android:layout_height = "wrap_content"
app:srcCompat = "@drawable/ic_add_black_24dp"
android:background = "@drawable/rounded"/>
</LinearLayout>
И это предыстория
<shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "oval">
<solid android:color = "#33DDFF" />
<corners android:radius = "4dp"/>
</shape>
Решение, которое я нашел, заключалось в том, чтобы использовать пустые Space вокруг кнопок и между ними, чтобы они занимали дополнительное пространство.
<Space
android:layout_width = "0dp"
android:layout_height = "1dp"
android:layout_weight = "1" >
</Space>
Мне пришлось убрать вес с самих кнопок и установить ширину wrap_content.
<ImageButton
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
app:srcCompat = "@drawable/ic_add_black_24dp"
android:background = "@drawable/rounded"
android:contentDescription = "@string/speak_button_desc"/>
Попробуй это:
Шаг 1. Установите android: layout_width = "0dp" Шаг 2. Установите android: layout_weight одинаково для всех кнопок с суммой, равной 1.0.
<LinearLayout android:id = "@+id/linearLayout3"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:layout_width = "match_parent">
<ImageButton
android:layout_height = "wrap_content"
android:id = "@+id/clear"
android:layout_width = "0dp"
android:layout_weight = ".5" />
<ImageButton
android:layout_height = "wrap_content"
android:id = "@+id/submit"
android:layout_width = "0dp"
android:layout_weight = ".5" />
</LinearLayout>
Большой! За исключением этого, необязательно устанавливать layout_width равным 1 сумме. Важно установить одинаковый вес для всех кнопок. (Например, это может быть 1, 1, 1 для 3 кнопок)
В этом случае будет проще использовать
ConstraintsLayout.