2012-02-17 24 views

risposta

8

consultare la sezione chiamata Stato Lista in questo po 'di documentazione ... Drawable Resources.

È possibile definire due diversi file Button xml per lo stato 'predefinito' trasparente e un altro con il pulsante come Rosso per lo stato 'premuto'. Quindi si definisce uno selector che commuta le risorse estraibili nei diversi stati.

MODIFICA: come per il commento di devunwired, la risorsa Elenco stato colore è probabilmente più adatta per la semplice modifica dei colori piuttosto che per il drawable stesso.

+6

+1 perché questa risposta è per lo più corretta. Voglio aggiungere, però, che è possibile modificare la proprietà 'android: textColor' in modo simile allo sfondo disegnabile usando Color State Lists: http://developer.android.com/guide/topics/resources/color-list -resource.html – Devunwired

+0

Doh! Si assolutamente. Avrei dovuto includere anche un link a questo - mi è appena capitato di avere l'altro link contrassegnato in modo che fosse a portata di mano. – Squonk

1

Devi farlo nel tuo codice. Prova questo:

mBtn = ((Button) findViewById(R.id.button1)); 
    mBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      mBtn.setTextColor(Color.RED); 
     } 
    }); 

Declare:

private Button mBtn; 
30

Sì, si può fare così:

layout/main_layout.xml:

..... 
    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="bonjour !" 
     android:textColor="@color/button_text_color" 
    /> 
..... 

colore/button_text_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="#c0c0c0" android:state_pressed="true"/> 
    <item android:color="#ffffff"/> 
    </selector> 
+1

dove esattamente stai cambiando il colore del testo? stai giocando con lo sfondo, ma non con il colore del testo –

+1

Non '@ drawable/button_text_color', ma' @ color/button_text_color'. – CoolMind

Problemi correlati