Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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 - Fatal编程技术网

Java 将颜色RGB转换为十六进制(整数结果)

Java 将颜色RGB转换为十六进制(整数结果),java,android,Java,Android,我创建了一个将三个整数值转换为十六进制值(字符串)的方法,如下所示(注意:尚未测试): 我的问题是:有没有一种方法可以将这个字符串结果转换为int值,我可以这样使用: view.setBackgroundColor(0xF82619); 或者有没有一种方法可以将字符串转换为int,然后再执行(而不会崩溃): 谢谢 假设字符串是 String col = "0xF82619"; 尝试: 假设你的字符串是 String col = "0xF82619"; 尝试: 直接将其转换为十六进制,而不是

我创建了一个将三个整数值转换为十六进制值(字符串)的方法,如下所示(注意:尚未测试):

我的问题是:有没有一种方法可以将这个字符串结果转换为int值,我可以这样使用:

view.setBackgroundColor(0xF82619);
或者有没有一种方法可以将字符串转换为int,然后再执行(而不会崩溃):

谢谢

假设字符串是

String col = "0xF82619";
尝试:

假设你的字符串是

String col = "0xF82619";
尝试:


直接将其转换为十六进制,而不是将其转换为第一个字符串,然后再转换为十六进制

  Integer.valueOf(String.valueOf(n), 16);

它将提高代码的性能。

而不是先将其转换为第一个字符串,然后再转换为十六进制,而是通过

  Integer.valueOf(String.valueOf(n), 16);

这将提高代码的性能。

要获得整数,您可以这样做

int col = (0xff << 24) | ((r&0xff) << 16) | ((g&0xff) << 8) | (b&0xff);

要获得整数,可以执行以下操作

int col = (0xff << 24) | ((r&0xff) << 16) | ((g&0xff) << 8) | (b&0xff);

为什么不直接将int转换为hex呢?永远不要编写将int转换为十六进制字符串值的方法。这是一项基本任务,语言(或基本API)将始终提供执行该任务的方法(或函数)。在java中,String.format()是方法;试试这个:stringoutput=String.format(#%02x%02x%02x',10,11,56);为什么不直接将int转换为hex呢?永远不要编写将int转换为十六进制字符串值的方法。这是一项基本任务,语言(或基本API)将始终提供执行该任务的方法(或函数)。在java中,String.format()是方法;试试这个:stringoutput=String.format(#%02x%02x%02x',10,11,56);亨利,它不起作用了:int r=255,g=40,b=100;int col=((r&0xff)是的,我忘记了alpha通道。不透明颜色有alpha 255。请参阅更新的答案。亨利,它不起作用:int r=255,g=40,b=100;int col=((r&0xff)是的,我忘记了alpha通道。不透明颜色有alpha 255。请参阅更新的答案。
int col = Color.rgb(r, g, b);