Android – How to set the text color of TextView in code


In XML, we can set a text color by the textColor attribute, like android:textColor="#FF0000". But how do I change it by coding?

I tried something like:


Where holder is just a class and text is of type TextView. Red is an RGB value (#FF0000) set in strings.

But it shows a different color rather than red. What kind of parameter can we pass in setTextColor()? In documentation, it says int, but is it a resource reference value or anything else?

Best Solution

You should use:


You can use various functions from the Color class to get the same effect of course.

  • Color.parseColor (Manual) (like LEX uses)

  • Color.rgb and Color.argb (Manual rgb) (Manual argb) (like Ganapathy uses)

  • And of course, if you want to define your color in an XML file, you can do this:

    <color name="errorColor">#f00</color>

    because the getColor() function is deprecated1, you need to use it like so:

    ContextCompat.getColor(context, R.color.your_color);
  • You can also insert plain HEX, like so:


    Where you have an alpha-channel first, then the color value.

Check out the complete manual of course, public class Color extends Object.

1This code used to be in here as well:


This method is now deprecated in Android M. You can however use it from the contextCompat in the support library, as the example now shows.