Usa drawable xml come questo:
Salva i seguenti contenuti come round_button.xml
nella cartella drawable
<?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 Effetto Materiale: Anche se FloatingActionButton
è una scelta migliore, se si vuole farlo utilizzando selettore xml, creare una cartella drawable-v21
in res
e salvare un altro round_button.xml
lì con il seguente 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 impostarla come sfondo di Button
in XML come questo:
<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:
- Se si vuole che mostra tutti questi stati (attivato, disattivato, evidenziato ecc), verrà utilizzato il selettore come described here.
- È necessario conservare entrambi i file per renderlo retrocompibile estraibile. Altrimenti, dovrai affrontare strane eccezioni nella precedente versione di Android.
fonte
2012-03-27 06:32:11
devi estendere la classe del pulsante e sovrascrivere il metodo onDraw. –
ma il problema è qui se lo estendo, e l'utente tocchi fuori cerchio, verrà chiamato Onlcick, come risolverlo. – Ata
perché non hai appena impostato un'immagine rotonda come sfondo del tuo pulsante? – MKJParekh