获取颜色资源作为字符串

Get color resource as string

我正尝试在颜色资源上使用 Color.parseColor()

<color name="redish">#FF0000</color>

我已经试过了,但它给了我 错误 Unknown color:

Color.parseColor(Integer.toHexString(context.getResources().getColor(R.color.redish)))

如何正确地将颜色资源转换为 String

String colorString=getResources().getString(R.color.redish);

试试这个

context.getResources().getColor(R.color.redish));

我想你错过了#

Color.parseColor("#"+Integer.toHexString(ContextCompat.getColor(context, R.color.redish)))

我在对象(包含其他字段)中存储了一种颜色。此外,颜色在 xml 文件 (colors.xml) 中定义。
所以想设置textview的背景色。我是这样做的:

...    
String color= res.colorName; // res is an object
int c = context.getResources().getIdentifier(color,"color", context.getPackageName());
textView.setBackgroundColor(Color.parseColor("#" + Integer.toHexString(context.getResources().getColor(c))));

如果您使用 activity 中的代码,则可以省略 'context' 的使用。

更新的答案:

String colorHex = "#" + Integer.toHexString(ContextCompat.getColor(context, R.color.colorPrimary) & 0x00ffffff);