2012-02-17 41 views

Odpowiedz

8

Zobacz sekcję o nazwie State Lista w tym kawałku dokumentacji ... Drawable Resources.

Można zdefiniować dwa różne pliki Button xml dla przezroczystego stanu "domyślnego" i inny z przyciskiem "Czerwony" dla stanu "wciśnięty". Następnie należy zdefiniować selector, który przełącza zasoby do rysowania w różnych stanach.

EDYCJA: Zgodnie z komentarzem devunwired, zasób listy kolorów jest prawdopodobnie bardziej odpowiedni tylko do zmiany kolorów niż do samego losowania.

+6

+1, ponieważ ta odpowiedź jest w większości poprawna. Chcę jednak dodać, że możesz zmienić właściwość 'android: textColor' w podobny sposób, jak tło do rysowania, korzystając z kolorowych list stanów: http://developer.android.com/guide/topics/resources/color-list -resource.html – Devunwired

+0

Doh! Tak, absolutnie. Powinienem też dołączyć do tego link - po prostu zdarzyło mi się, że drugi link został oznaczony zakładką, więc był pod ręką. – Squonk

1

Musisz to zrobić w swoim kodzie. Spróbuj tego:

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

Tak, można to zrobić tak:

Układ/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" 
    /> 
..... 

kolor/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

gdzie dokładnie zmieniasz kolor tekstu? grasz z tłem, ale nie kolor tekstu –

+1

Nie "@ drawable/button_text_color", ale '@ color/button_text_color'. – CoolMind

Powiązane problemy