Java 无法解析方法Color.valueOf(int)

Java 无法解析方法Color.valueOf(int),java,android,colors,Java,Android,Colors,我想从字符串中创建颜色对象,如“#b66c61”和“#33b7c4” 这是我的代码: import android.graphics.Color; ...... String color_string = "#b66c61"; int color_int = Integer.parseInt(color_string.substring(1, color_string.length()-1)); Color color = Color.valueOf(color_int); 当我运行它时

我想从字符串中创建颜色对象,如
“#b66c61”
“#33b7c4”

这是我的代码:

import android.graphics.Color;
......
 String color_string = "#b66c61";
 int color_int = Integer.parseInt(color_string.substring(1, color_string.length()-1));
 Color color = Color.valueOf(color_int);
当我运行它时,我得到一个错误:
无法解析方法valueOf(int)
尽管我确信该方法存在:


有什么帮助吗?

您只需使用
parseColor
。见下文-

String color_string = "#b66c61";
int myColor = Color.parseColor(color_string)
// use int color to set Color
myLayout.setBackgroundColor(myColor);
只有从API 26开始,Android才引入了
valueOf
方法。所以它在其他API中不可用,而且在26年内还没有支持库。只有在发射后情况变得更清楚时,才能说明这种方法的确切用途

您可以使用

public static int parseColor (String colorString)
像这样

String color_string = "#b66c61";
int color = Color.parseColor(color_string);
来自Android文档:


支持的格式有:#RRGGBB#AARRGGBB'红色'、'蓝色'、'绿色'、'黑色'、'白色'、'灰色'、'青色'、'洋红'、'黄色'、'浅灰色'、'深灰色'/p>ContextCompat.getColor(context,R.color.your_color)color.color.color.color.color.color.color.color.color.color.color.color正在将十六进制字符串作为参数,而您正在传递不可能的整数值。@SarthakMittal我不想将它们放在我的资源中,颜色会动态变化,这只是一个错误example@ChetanchadhavalueOf()接受一个colorint,如docs@M.Dhaouadi也,
valueOf
函数仅在API26+中可用,您使用的是什么版本?这是错误的,这会给出错误:必需的android.graphics.Color,已找到int@M.Dhaouadi检查仍然不是答案,我想要一个颜色实例,而不是int.and
Color mycolor=Color.valueOf(Color)给出
无法解析方法
错误这是错误的,这给出错误:必需的android.graphics.Color,找到是,抱歉错误的类型转换。因此,您可以直接使用int color在任何视图中进行设置。为什么需要一个color实例。Android中不需要这样做,因为所有的布局都只接受int颜色?我是说,到目前为止,它没有任何用处。即使你得到一个颜色实例,你也不能在任何地方使用它,因为所有方法都只需要int。从Android O开始,valueOf方法已添加到color中,以获取定义颜色空间中的颜色值,但它的总使用量仍然不清楚。如果你需要将其保存在DB中,保存十六进制值并获取它,并在每次需要时进行转换。或者保存int值@达瓦迪先生