javaandroidandroid-drawablecolordrawable

Create a new color drawable


I am trying to convert a hex value to an int so I can create a new color drawable. I'm not sure if this is possible, but according to the documentation, it should. It plainly asks for

public ColorDrawable (int color)

Added in API level 1 Creates a new ColorDrawable with the specified color.

Parameters color The color to draw.

So, my code isn't working because I'm getting an Invalid int: "FF6666" error. Any ideas?

int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);

Solution

  • Since you're talking about hex you have to start with 0x and don't forget the opacity.

    So basically: 0xFFFF6666

    ColorDrawable cd = new ColorDrawable(0xFFFF6666);
    

    You can also create a new colors.xml file into /res and define the colors like:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="mycolor">#FF6666</color>
    </resources>
    

    and simply get the color defined in R.color.mycolor

    getResources().getColor(R.color.mycolor)