2012-12-19 8 views
7

Ich versuche, die Hintergrundfarbe eines FramyLayout zu ändern. Die Farbe ändert sich, aber zum falschen.Android. Ändern Sie die Hintergrundfarbe eines FrameLayout von Code

Allerdings funktioniert es gut, wenn ich es über das XML mache.

Hier ist meine res/Werte/Colors.xml Code

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="grey">#888888</color> 
    <color name="white">#FFFFFF</color> 
    <color name="red">#ffff3448</color> 
    <color name="green">#ff408c3a</color> 
</resources> 

Hier ist, wie es aussieht, wenn ich Änderungen in der XML- Colors changed correctly

Und das ist das, was geschieht, wenn ich versuche, zu tun es mit dem Code

FrameLayout frameLayoutBalance = (FrameLayout)view.findViewById(R.id.frameLayoutBalance); 
frameLayoutBalance.setBackgroundColor(R.color.green); 

Colors changed incorrectly

+0

betrachten Sie diesen Beitrag http://StackOverflow.com/Questions/2895367/change-background-Color-of-the-layout-in-android –

Antwort

9

Sie sollten nicht verwenden frameLayoutBalance.setBackgroundColor (R.color.green);

setBackgroundColor benötigt eine Farbe (d. H. Ihren Wert wie von Chirag Raval beschrieben) keine Farbressourcen.

Verwenden Sie dieses frameLayoutBalance.setBackgroundColor (getResources(). GetColor (R.color.green));

3

Verwenden Sie diesen Code frameLayoutBalance.setBackgroundColor (Color.parseColor ("# 00aacc"));

+1

Hallo! Vielen Dank für eine schnelle Antwort. Obwohl Ihr Code funktioniert und als Workaround verwendet werden kann, kann er leider nicht als Lösung verwendet werden. Es ist immer eine Best Practice, keine Werte hardcore zu machen, als ob sie sich ändern würden. Ich werde den gesamten Code durchgehen und ihn überall manuell ändern müssen. –

+3

frameLayoutBalance.setBackgroundColor (getResources(). GetColor (R.color.red)); – User

+0

danke Madhavi. es funktionierte –

Verwandte Themen