2011-11-22 19 views
15

जब मैं निम्नलिखित कोड चलाने की कोशिश मैं उपरोक्त त्रुटि हो रही है:एंड्रॉयड: java.lang.IllegalArgumentException: अज्ञात रंग

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

हमलावर हेक्साडेसिमल मान ee3090b0 है। क्या कोई तरीका है कि मैं रंग हेक्साडेसिमल मान को इसके पूर्णांक समकक्ष में परिवर्तित कर सकता हूं और फिर भी अल्फा मान को बनाए रख सकता हूं? मैं इस post में किए गए एक सुझाव निम्नलिखित की कोशिश की है, लेकिन यह काम नहीं कर रहा है ...

+0

परिवर्तनीय 'रंग' का प्रकार क्या है? –

+1

रंग नामक एक कस्टम ऑब्जेक्ट। – MissPiplup

+1

यह पता चला है कि मैं हेक्साडेसिमल स्ट्रिंग के सामने # शामिल करना भूल गया था। तो मैं "# ee3090b0" के बजाय "ee3090b0" पास कर रहा था। – MissPiplup

उत्तर

39

documentation से:

सार्वजनिक स्थैतिक int parseColor (स्ट्रिंग colorString)

रंग पार्स स्ट्रिंग, और इसी रंग-int वापस लौटें। यदि स्ट्रिंग को पार्स नहीं किया जा सकता है, तो अवैध अवैधकरण एक्सेप्शन अपवाद फेंकता है। समर्थित प्रारूप हैं: #RRGGBB #AARRGGBB 'लाल', 'नीला', 'हरा', 'काला', 'सफेद', 'ग्रे', 'सियान', 'मैजेंटा', 'पीला', 'लाइटग्रे', 'darkgray'

आपका विधि शायद एक स्ट्रिंग है कि एक # साथ शुरू नहीं करता है देता है।

+3

यह हो सकता है, यदि आपके रंग कोड स्ट्रिंग में स्थान या नई पंक्ति हो। तो बस colorcode स्ट्रिंग ट्रिम करें। उदाहरण: - colorcode.trim(); – jaleel

+0

यह 6 वर्ण लंबी स्ट्रिंग चाहता है। मुझे लगता है कि यह 8 अक्षरों पर एक अपवाद फेंकता है (या 6 से कम कुछ भी) – msecilmis

संबंधित मुद्दे