2013-10-20 12 views
5

ciao devo realizzare questo layout. ha questo layout. inactive buttonscome posso implementare forme non rettangolari per pulsanti in Android

Potrei provare a utilizzare le icone come pulsanti immagine ma lo stato attivo di un pulsante è simile a questo!

one button has been pressed

come dovrei continuare con la tua?

+1

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

+0

@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

+1

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

risposta

1

Si dovrebbe usare selector come segue:

  1. 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.

  2. 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

+2

grazie, il mio problema reale è la forma dei pulsanti, se uso forme rettangolari o devo lasciare qualche parte dei pulsanti per essere sfilabile o si sovrapporranno – dmSherazi

Problemi correlati