这是我将String转换为Color的代码:
public Color prepareColour(String str) {
str.replace("#", "");
float r = Float.valueOf(str.substring(0,1));
float g = Float.valueOf(str.substring(2,3));
float b = Float.valueOf(str.substring(4,5));
Color color = Color.valueOf(r,g,b);
return color;
}
我收到以下调试错误:
错误:(16,23)错误:构造函数Color中的Color不能应用于给定的类型; 必需:没有参数 发现:浮动,浮动,浮动 原因:实际和正式的参数列表长度不同
但是,从Android Studio编译之前的建议是:
调用需要API级别26(当前最小值为17)......
我看到2011年的答案支持这种创建Color的方式,所以它肯定适用于API 17并且不需要26。
我尝试过清理和重建项目,以及用实际值替换str.substring
而没有任何更改。
为什么代码不能编译?
答案 0 :(得分:4)
您是否尝试过使用Color.rgb(r,g,b)
代替Color.valueOf(...)
? Color.valueOf(...)
是Android Developer O预览中的一种非常新的方法,因此它目前只适用于1个API级别。
此外,请确保您使用的范围为0-255,或者浮动范围为0-1。
答案 1 :(得分:1)
您可以使用此代码。
Color.parseColor(String strColor);
这是Color
class
public static int parseColor (String colorString)
https://developer.android.com/reference/android/graphics/Color.html#parseColor(java.lang.String)