Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android. Change the background color of a FrameLayout from code

I'm trying to change the background color of a FramyLayout. The color is changing, but to the wrong one.

However it is working fine if I do it through the XML.

Here is my res/values/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>

Here is how it looks like if I make changes in the XML Colors changed correctly

And that's what is happening if I try to do it with the code

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

Colors changed incorrectly

like image 827
Vlad Spreys Avatar asked Dec 19 '12 08:12

Vlad Spreys


1 Answers

You should not use frameLayoutBalance.setBackgroundColor(R.color.green);

setBackgroundColor required a Color (i.e. its value as describe by Chirag Raval) not a color resources.

use this frameLayoutBalance.setBackgroundColor(getResources().getColor(R.color.green));

like image 120
Vivek Khandelwal Avatar answered Oct 26 '22 07:10

Vivek Khandelwal