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