Ustawiłem przycisk jako przezroczysty, więc chciałbym zmienić kolor tekstu przycisku po naciśnięciu przycisku. Czy jest to możliwe przy użyciu tylko plików xml?Zmiana koloru tekstu przycisku po naciśnięciu przycisku
Odpowiedz
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.
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;
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>
gdzie dokładnie zmieniasz kolor tekstu? grasz z tłem, ale nie kolor tekstu –
Nie "@ drawable/button_text_color", ale '@ color/button_text_color'. – CoolMind
Musisz ustawić @drawable
xml zasobu w textColor
atrybut
Oto przykład: Android customized button; changing text color
+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
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