简体   繁体   中英

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"));

没有资源

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM