Estoy intentando crear un botón con un icono en el centro. Las partes superior e inferior del círculo son un poco planas. ¿Hay alguna manera de hacer esto sin usar el radio de la esquina? Aquí está mi diseño para el botón.
<com.google.android.material.button.MaterialButton
android:id="@+id/start_dispenser_btn"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="175dp"
android:layout_height="175dp"
android:padding="14dp"
app:cornerRadius="150dp"
app:icon="@drawable/ic_play_arrow_black_60dp"
app:iconGravity="end"
app:iconSize="150dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/stop_dispenser_btn"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/test_dispenser_container"
app:strokeColor="@color/background_black" />
Respuestas:
Puede usar el
app:shapeAppearanceOverlay
atributo para definir el tamaño de la esquina. Puedes usar el50%
valor.con:
o con el
style="@style/Widget.MaterialComponents.Button.Icon"
Requiere la versión 1.1.0.
fuente
Al usar
cornerRadius
junto coninset
usted puede obtener la forma redondeada:fuente