2011-11-22 12 views
15

私は、次のコードを実行しようとすると、私は上記のエラーを取得しています:アンドロイド:java.lang.IllegalArgumentExceptionが:不明色

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

問題進値がee3090b0です。色の16進数値を整数に変換してアルファ値を保持できる方法はありますか? 私はこのpostで作られた提案、次の試してみたが、それが動作していない...

+0

変数 'c​​olor'のタイプは何ですか? –

+1

Colorというカスタムオブジェクト。 – MissPiplup

+1

16進文字列の前に#を含めるのを忘れてしまったことが判明しました。だから私は "ee3090b0"の代わりに "ee3090b0"を渡していました。 – MissPiplup

答えて

39

documentationから:

のpublic static int型parseColor(文字列colorString)

は色を解析文字列を返し、対応するcolor-intを返します。 文字列を解析できない場合は、IllegalArgumentException例外がスローされます。 #RRGGBB #AARRGGBB「赤」、「青」、「緑」、 「黒」、「白」、「グレー」、「シアン」、「マゼンタ」、「黄色」、「ライトグレイ」、 「darkgray」

あなたの方法は、おそらく#で始まらない文字列を返します。

+3

カラーコード文字列にスペースや改行が含まれていると、これが発生する可能性があります。カラーコード文字列をトリムするだけです。例: - colorcode.trim(); – jaleel

+0

6文字の長い文字列が必要です。私はそれが8文字(または6以外のもの)の例外をスローすると思う – msecilmis

関連する問題