Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中从rgb字符串创建颜色_Java_Android_Android Api Levels - Fatal编程技术网

在Java中从rgb字符串创建颜色

在Java中从rgb字符串创建颜色,java,android,android-api-levels,Java,Android,Android Api Levels,这是我将字符串转换为颜色的代码: 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 = C

这是我将字符串转换为颜色的代码:

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)错误:类颜色中的构造函数颜色不能应用于给定类型; 必需:无参数 找到:浮动,浮动,浮动 原因:实际参数列表和正式参数列表长度不同

但是,在从Android Studio编译之前,建议:

调用需要API级别26(当前最小值为17)

我看到2011年的答案支持这种创建颜色的方法,所以它肯定可以在API 17上工作,不需要26

我尝试过清理和重建项目,以及用实际值替换
str.substring
,但没有任何更改


为什么代码不能编译?

您是否尝试过使用
Color.rgb(r,g,b)
而不是
Color.valueOf(…)
Color.valueOf(…)
是Android Developer O预览版中的一个非常新的方法,因此目前它只在1个API级别上有用

另外,请确保您使用的整数在0-255范围内,或浮点在0-1范围内。

您可以使用此代码

Color.parseColor(String strColor);
这是
Color
类的静态方法

public static int parseColor (String colorString)

您能提供一个正在解析的示例字符串吗?被淹没后,它不会编译。我已经用“FF”替换了str.substring(),这是相同的。我能找到的唯一
Color.valueOf(?)
方法是JavaFX中的方法。如果是,只需使用
Color.valueOf(somehextstring)
就可以了fine@TomK不知道为什么,但这样我得到了以下错误:错误:(20,32)错误:不兼容的类型:int无法转换为颜色。我甚至没有使用任何int…Color.rgb返回一个int。int是一种颜色,Color类只是一个操作颜色的方便类。不兼容类型:必需的android.graphics.Color;找到int使您的方法返回int,并只返回Color.rgb(…);所有关于颜色的方法都是静态的,所以实际上不需要颜色类型的对象。你只需要颜色的int表示,所以方法基本上不能返回颜色。当我需要使用颜色时,我必须进行转换,对吗?这是这个问题的最佳解决方案