How to set the color of a TextView in Android?
In the string.xml file I use the following tag
<color name="mycolor1">#F5DC49</color>
If I use
textview1.setTextColor(Color.CYAN);
it works, but
textview1.setTextColor(R.color.mycolor1);
is not working.
How can I use the color defined in the XML file?
TextView.setTextColor()
takes an int representing the color (eg. 0xFFF5DC49) and not the resource ID from the xml file. In an activity, you can do something like:
textView1.setTextColor(getResources().getColor(R.color.mycolor))
outside of an activity you'll need a Context
eg.
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
textView1.setTextColor(Color.parseColor("#F5DC49"));
without resources
context.getResources().getColor
is Deprecated.
You need to use ContextCompat.getColor(), which is part of the Support V4 Library (so it will work for all the previous API).
ContextCompat.getColor(context, R.color.my_color);
You will need to add the Support V4 library by adding the following to the dependencies
array inside your app build.gradle:
compile 'com.android.support:support-v4:23.0.1' # or any version above
If you care about theming, the documentation specifies that the method will use the context's theme:
Starting in M, the returned color will be styled for the specified Context's theme