Quiero crear un botón personalizado y necesito que sea un círculo. ¿Cómo puedo crear un botón circular? No creo que eso sea posible con draw9patch.
¡Tampoco sé cómo hacer un botón personalizado!
¿Tienes alguna sugerencia?
Quiero crear un botón personalizado y necesito que sea un círculo. ¿Cómo puedo crear un botón circular? No creo que eso sea posible con draw9patch.
¡Tampoco sé cómo hacer un botón personalizado!
¿Tienes alguna sugerencia?
Respuestas:
Use xml dibujable de esta manera:
Guarde los siguientes contenidos como round_button.xmlen la drawablecarpeta
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="#fa09ad"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#c20586"/>
</shape>
</item>
</selector>
Android material Efecto: A pesar de que FloatingActionButtones una mejor opción, si usted quiere hacerlo utilizando el selector xml, crear una carpeta drawable-v21en resy salvar a otro round_button.xmlallí con XML siguiente
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#c20586">
<item>
<shape android:shape="oval">
<solid android:color="#fa09ad"/>
</shape>
</item>
</ripple>
Y configúrelo como fondo de Buttonxml de esta manera:
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="hello"
android:textColor="#fff" />
Importante:
Markushi escribió un widget de botón circular con efectos sorprendentes. Haga clic aqui !

AngryTool para botón personalizado de Android
Puede hacer cualquier tipo de botón personalizado de Android con este sitio de herramientas ... hago un círculo y un botón cuadrado con una esquina redonda con este sitio de herramientas. Visítelo, tal vez lo ayude.
Con la biblioteca oficial de Componentes de material puede usar la MaterialButtonaplicación de un Widget.MaterialComponents.Button.Iconestilo.
Algo como:
<com.google.android.material.button.MaterialButton
android:layout_width="48dp"
android:layout_height="48dp"
style="@style/Widget.MaterialComponents.Button.Icon"
app:icon="@drawable/ic_add"
app:iconSize="24dp"
app:iconPadding="0dp"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:insetBottom="0dp"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Rounded"
/>
Actualmente, el app:iconPadding="0dp", android:insetLeft, android:insetTop, android:insetRight, android:insetBottomse necesitan atributos para centrar el icono en el botón evitando carnes de más espacio.
Usa el app:shapeAppearanceOverlayatributo para obtener esquinas redondeadas. En este caso tendrás un círculo.
<style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
El resultado final:
app:iconPadding="0dp"garantizar que el ícono esté centrado. Me quemé un montón de tiempo intentando centrarme hasta que encontré esto. Parece un descuido esa aplicación: iconGravity no tiene un valor "central".
si quieres usar VectorDrawable y ConstraintLayout
<FrameLayout
android:id="@+id/ok_button"
android:layout_width="100dp"
android:layout_height="100dp"
android:foreground="?attr/selectableItemBackgroundBorderless"
android:background="@drawable/circle_button">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/icon_of_button"
android:layout_width="32dp"
android:layout_height="32dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:srcCompat="@drawable/ic_thumbs_up"/>
<TextView
android:id="@+id/text_of_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/icon_of_button"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="5dp"
android:textColor="@android:color/white"
android:text="ok"
/>
</android.support.constraint.ConstraintLayout>
</FrameLayout>
fondo del círculo: circle_button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1000dp" />
<solid android:color="#41ba7a" />
<stroke
android:width="2dip"
android:color="#03ae3c" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>
Para un botón de aspecto FAB este estilo en MaterialButton:
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton"
app:cornerRadius="28dp"
android:layout_width="56dp"
android:layout_height="56dp"
android:text="1" />
Resultado:
Si cambia el tamaño, tenga cuidado de usar la mitad del tamaño del botón como app:cornerRadius.