获取颜色资源作为字符串
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);
我正尝试在颜色资源上使用 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);