2 Stimmen

wie man die Hintergrundfarbe von Schaltflächen dynamisch mit Hilfe von Farbressourcen in der Datei color.xml anwendet

Ich versuche, die Hintergrundfarbe dynamisch auf die Schaltfläche anzuwenden, indem ich die Farb-ID in der Farbressourcendatei (color.xml) verwende.

btn.setBackgroundColor(R.color.green);

Ich habe auch dies versucht

btn.setBackgroundColor(Resources.getSystem().getColor(R.color.green));

aber es funktioniert nicht.

wenn ich mich bewerbe

btn.setBackgroundColor(Color.Green);

Es funktioniert.

Aber ich brauche, um Farbe Ressource aus color.xml-Datei anwenden. Bitte lassen Sie mich wissen, wie ich es tun kann.

7voto

ρяσѕρєя K Punkte 130798

Sie sollten dies verwenden:

btn.setBackgroundColor(getResources().getColor(R.color.Green));

und den zweiten Weg:

Resources resources = YourActivity.this.getResources();  
Drawable drawable = resources.getDrawable(R.color.Green);
btn.setBackgroundDrawable(drawable);

wie Ihre color.xml aussehen soll:

 <?xml version="1.0" encoding="utf-8"?>  
    <resources>  
        <drawable name="red">#f00</drawable>  
        <drawable name="green">#0f0</drawable>  
        <drawable name="gray">#ccc</drawable>  
    </resources>  

**EDIT Jetzt, wo getColor() veraltet ist:

ContextCompat.getColor(context, R.color.color_name)

0voto

Anders Metnik Punkte 5866

Unter values create xml called colors, fügen Sie dort Ihre benutzerdefinierten Farben hinzu. Jetzt können Sie R.color. "name" schreiben (aka. Farbe in Farben umbenennen)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X