2011-10-05 11 views
12

Ho provato a modificare il colore di sfondo del pulsante di attivazione utilizzando il file XML come colore bianco, ma il pulsante di attivazione è completamente danneggiato. Sembra che tutto il pulsante fosse coperto di bianco.Come modificare il colore di sfondo del pulsante di attivazione su Android

Non c'è alcuna indicazione di ON o OFF sul pulsante di commutazione quando ho cambiato il colore del pulsante di commutazione in bianco. C'è un altro modo per cambiare lo sfondo che non danneggi l'indicazione del pulsante di attivazione/disattivazione?

<ToggleButton android:id="@+id/togglebutton" 
       android:layout_width="100px" 
       android:layout_height="46px" 
       android:background="#ffffff" 
       android:layout_above ="@+id/save" 
       android:textOn="DAY" 
       android:textOff="NIGHT" /> 

Ecco come il mio codice XML cerca il pulsante di attivazione/disattivazione.

+1

Mostraci cosa hai provato. In genere è necessario utilizzare un [elenco stato colore] (http://developer.android.com/guide/topics/resources/color-list-resource.html) o un [elenco stato disegnabile] (http: // developer. android.com/guide/topics/resources/drawable-resource.html#StateList) per fare ciò che stai descrivendo. –

risposta

13

Sì, c'è un modo per cambiare lo sfondo come si desidera, ma è necessario utilizzare un selettore come questo come sfondo:

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
> 
<item 
    android:state_focused="true" 
    android:state_pressed="false" 
    android:drawable="@drawable/some_image" /> 
<item 
    android:state_focused="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/some_other_image" /> 
<item 
    android:state_focused="false" 
    android:state_pressed="false" 
    android:drawable="@drawable/some_image1" /> 
<item 
    android:state_focused="false" 
    android:state_pressed="true" 
    android:drawable="@drawable/other_image" /> 
</selector> 

Per @Drawable, ecc (è possibile utilizzare un colore o .. fare un gradiente Verificare this per ulteriori informazioni su gradienti

+0

grazie per il codice e il tutorial – padmi

-13

Quando si decompilare il tuo SystemUI.apk, si dovrebbe andare per il seguente file: SystemUI/res/valori/colors.xml

quindi modificare la riga seguente :

# ff000000 #ffffffff # 80000000 # ffadc1d6 #ffffffff # ffe6e6e6

+0

Ci deve essere un modo più semplice per farlo? –

+1

Non farlo. – ZirconCode

1

Seguire questa strada per rendere il vostro ToogleButton hanno colore di sfondo rosso quando On e verde quando OFF

Prima, creare tooglebutton_selector.xml nella cartella estraibile

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/togglebutton_on" 
     android:state_checked="true" /> 
    <item android:drawable="@drawable/togglebutton_off" 
     android:state_checked="false" 
     /> 
</selector> 

In secondo luogo, creare togglebutton_on.xml nella cartella drawable

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid 
     android:color="#ff0000" /> // red color 
</shape> 

Terzo, creare togglebutton_off.xml nella cartella drawable

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid 
     android:color="#00FF00" /> // green color 
</shape> 

Infine, nella vostra ToggleButton

<ToggleButton 
      android:id="@+id/btnMon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/tooglebutton_selector" //set background of ToggleButton to tooglebutton_selector 
      /> 
+0

Potete aiutare? http://stackoverflow.com/questions/39772456/change-togglebutton-color – John

Problemi correlati