从rgb Stringin Java创建颜色

时间:2017-06-27 14:57:33

标签: java android android-api-levels

这是我将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而没有任何更改。

为什么代码不能编译?

2 个答案:

答案 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)