2011-11-22 75 views
15

,我发现了上面的错误,当我尝试运行下面的代码:安卓:java.lang.IllegalArgumentException异常:未知色彩

int colourInt = Color.parseColor(colour.getHexValue()); 

有问题的十六进制值是ee3090b0。有没有一种方法可以将颜色十六进制值转换为其整数等效值,并仍然保留alpha值? 我试着按照本post提出的建议,但它不工作...

+0

变量'color'的类型是什么? –

+1

一个名为Color的自定义对象。 – MissPiplup

+1

事实证明,我忘了将#包含在十六进制字符串的前面。所以我通过了“ee3090b0”而不是“#ee3090b0”。 – MissPiplup

回答

39

documentation

公共静态INT parseColor(字符串colorString)

解析颜色字符串,并返回相应的color-int。如果 字符串不能被解析,则抛出IllegalArgumentException异常。 支持的格式为:#RRGGBB #AARRGGBB'红','蓝','绿', '黑','白','灰','青','品红','黄','浅灰色', “深灰”

你的方法可能返回不带#开始的字符串。

+3

如果在颜色代码字符串中包含空格或换行符,可能会发生这种情况。所以只需修剪颜色代码字符串。例如: - colorcode.trim(); – jaleel

+0

它想要一个6字符长的字符串。我认为它会在8个字符(或6以外的任何其他字符) – msecilmis

相关问题