2011-11-22 110 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

相關問題