将十六进制颜色字符串转换为颜色?

10

我有一个颜色以以下格式的字符串0xAABBCC

我需要将其转换为Color对象,但似乎没有这样的方法,所有可用的方法都返回Integer结果,这似乎与Color对象不兼容。

  • 如何从上述描述的HEX字符串中创建Color类的实例?
2个回答

25

使用Color.parseColor("#AABBCC");方法。


1
parseColor 返回整数。Color c = Color.parseColor("XXX"); 抛出颜色和整数不兼容的异常。 - user1886623
@BertiKelvin 你可以像这样使用: int x=Color.parseColor("#AABBCC"); tv.setBackgroundColor(x); 这将把颜色设置为textview - Raghunandan
1
没有必要创建一个Color类的实例。我认为公共构造函数的唯一原因是为了反射。事实上,setTextColor的参数是一个int类型。 - Blackbelt
看起来我将别无选择,只能将它用作Int。非常感谢。我明白了。 - user1886623

-1

new Color(Integer.parseInt("AABBCC", 16));

的意思是创建一个颜色对象,使用十六进制的字符串"AABBCC"来指定颜色值。


构造函数Color(int)未定义。 :| - user1886623
无法帮助您,这里没有安卓设备。请查看Android文档以找到适合的构造函数/工厂。 - Durandal
我已经尝试过,但是文档走到了死胡同。 - user1886623
1
@BertiKelvin:你可以将当前字符串解析为整数,如 int color = Integer.parseInt("0xAABBCC", 16),而不是将颜色传递给你想要设置它的 setColor 方法。 - ρяσѕρєя K
你是否偶然创建了一个名为Color的类,或者从其他地方导入了不同的Color类(我曾经意外地将一个类重构为Object,那真是有趣)?我认为Android在基本事项上不会有太大的区别。 - Durandal
android.graphics.Color col = new Color( xxxx ); 这是我正在尝试的 :| - user1886623

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接