2011-11-22 30 views
15

Ben aşağıdaki kodu çalıştırmayı denediğinizde yukarıdaki hatayı alıyorum:Android: java.lang.IllegalArgumentException: Bilinmeyen renk

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

kusurlu onaltılık değer ee3090b0 olduğunu. Renk hexdecimal değerini tamsayı eşdeğerine dönüştürmek ve hala alfa değerini korumak için bir yolu var mı? Bu post yapılmış bir öneri aşağıdaki denedim ama işe yaramıyor ...

+0

'Renk' değişkeninin türü nedir? –

+1

Renk adı verilen özel bir nesne. – MissPiplup

+1

Onaltılık dizenin önüne # eklemeyi unuttuğum ortaya çıkıyor. Yani "# ee3090b0" yerine "ee3090b0" geçiyordum. – MissPiplup

cevap

39

documentation Gönderen:

public static int parseColor (Dize colorString)

rengini Ayrıştırma dize ve karşılık gelen renk-int. dizesi ayrıştırılamıyorsa, IllegalArgumentException istisnası atar. Desteklenen biçimler şunlardır: #RRGGBB #AARRGGBB 'kırmızı', 'mavi', 'yeşil', 'siyah', 'beyaz', 'gri', 'cyan', 'macenta', 'sarı', 'lightgray', 'koyuGri'

Yöntemin muhtemelen # ile başlamayan bir dize döndürür.

+3

bu, renk kodu dizinizde boşluk veya satır sonu içeriyorsa oluşabilir. bu yüzden sadece renk kodu dizesini kırpın. örneğin: - colorcode.trim(); – jaleel

+0

, 6 karakter uzunluğunda bir dize istiyor. Sanırım 8 karakterden (veya 6'dan başka bir şeyden) bir istisna atar – msecilmis

İlgili konular