Установка идеально круглых закругленных углов на MaterialButton в XML

Итак, я пытался найти способ сделать MaterialButtonиз библиотеки компонентов материала имеют идеально закругленные углы. Я имею в виду, что фактически они имеют размер угла 50% высоты кнопки.

В некоторых документах: https://material.io/design/shape/applying-shape-to-ui.html указано, что это должно быть возможно с приведенной ниже цитатой.

Размер формы можно определить с помощью абсолютного или процентного значения.

У меня есть несколько рабочих решений: сначала измерить вид и установить таким образом размер угла, но потом я обнаружил, что ExtendedFloatingActionButton использует RelativeCornerSize объект.

Однако я все еще не могу найти решение в XML.

Дайте знать, если у вас появятся вопросы!

2 ответа

Решение

Вы можете использовать shapeAppearanceOverlay атрибут.

<com.google.android.material.button.MaterialButton
    app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Button.50"
    .../>

с:

  <style name="ShapeAppearanceOverlay.Button.50" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">50%</item>
  </style>

Вы можете использовать абсолютное или процентное значение.

В Material Design есть специальные команды.

Я не мог объяснить это лучше, чем этот ответ

Работает с Android Studio 3.1 или выше.