Si dovrebbe usare selector
come segue:
Preparare 2 immagini per stati del pulsante, e metterlo nella cartella res/drawable
.
button_normal_green.png - Pulsante immagine predefinito.
button_pressed_yellow.png - Visualizza quando il pulsante viene premuto.
Ora, crea un nuovo file XML nella cartella "res/drawable /", con qualsiasi nome tu voglia, in questo caso, diamo solo un nome come "new_button.xml". Questo file ha definito quale stato del pulsante appartiene a quale immagine.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed_yellow" android:state_pressed="true" />
<item android:drawable="@drawable/button_normal_green" />
</selector>
3.Impostare sfondo pulsante
<ImageButton
android:id="@+id/imageButtonSelector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/new_button" />
Date un'occhiata al Complete Example
fonte
2013-10-20 09:06:10
Questo è troppo di una domanda per darvi una risposta. I pulsanti in alto sono 'ImageButton's abbastanza facili da posizionare. Tricky è il cerchio nel mezzo. Puoi creare 'ImageButton's per ogni parte e posizionarli a livello di programmazione attorno al cerchio, ma le aree cliccabili si sovrappongono. Quindi penso che il modo migliore sia quello di rendere l'intero cerchio con tutti i pulsanti cliccabili e avere un ascoltatore touch che rileva quale parte del cerchio è stata effettivamente cliccata. Forse puoi semplificare e focalizzare la tua domanda attorno a quella parte specifica. A proposito: bel design! – jboi
@jboi ce l'hai al 100%. sarò in balle per mostrare entrambi gli stati di ciascun pulsante utilizzando il metodo touch listner? Qualche esempio? – dmSherazi
Per i diversi stati dei drawable puoi usare 'selector' o' LevelListDrawable'. Con loro si definiscono le diverse bitmap per lo stato toccato e non toccato a diversi livelli. Con 'ImageView.setLevel (...)' imposti il livello in fase di esecuzione. – jboi