Voglio creare un pulsante personalizzato e ho bisogno che sia un cerchio. Come posso creare un pulsante circolare? Non penso che sia possibile con draw9patch.
Inoltre non so come creare un pulsante personalizzato!
Hai qualche suggerimento?
Voglio creare un pulsante personalizzato e ho bisogno che sia un cerchio. Come posso creare un pulsante circolare? Non penso che sia possibile con draw9patch.
Inoltre non so come creare un pulsante personalizzato!
Hai qualche suggerimento?
Risposte:
Usa il disegno XML in questo modo:
Salvare i seguenti contenuti come round_button.xmlnella drawablecartella
<?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>
Effetto Materiale Android: Anche se FloatingActionButtonè una scelta migliore, se si vuole farlo utilizzando il selettore xml, creare una cartella drawable-v21in rese salvare un altro round_button.xmllì con seguente codice XML
<?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>
E impostalo come sfondo di Buttonin xml in questo modo:
<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 ha scritto un widget pulsante cerchio con effetti sorprendenti. Clicca qui !

AngryTool per pulsante Android personalizzato
Puoi creare qualsiasi tipo di pulsante Android personalizzato con questo sito di strumenti ... Faccio un cerchio e un pulsante quadrato con angolo arrotondato con questo sito di strumenti. Visita potrebbe essere che ti aiuterò
Con la libreria ufficiale dei componenti materiali è possibile utilizzare l' MaterialButtonapplicazione di uno Widget.MaterialComponents.Button.Iconstile.
Qualcosa di simile a:
<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"
/>
Attualmente il app:iconPadding="0dp", android:insetLeft, android:insetTop, android:insetRight, android:insetBottomgli attributi sono necessari per centrare l'icona sul pulsante evitando spazio chilo in più.
Utilizzare l' app:shapeAppearanceOverlayattributo per ottenere gli angoli arrotondati. In questo caso avrai un cerchio.
<style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
Il risultato finale:
app:iconPadding="0dp"di assicurarsi che l'icona sia centrata. Ho passato un sacco di tempo a provare il centro finché non ho trovato questo. Sembra una svista quell'app: iconGravity non ha un valore "centrale".
se si desidera utilizzare VectorDrawable e 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>
sfondo del cerchio: 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>
Per un pulsante dall'aspetto FAB questo stile su un 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" />
Risultato:
Se si modifica la dimensione, fare attenzione a utilizzare la metà della dimensione del pulsante come app:cornerRadius.