2011-11-22 16 views
15

sto ottenendo l'errore precedente quando si tenta di eseguire il codice seguente: valore esadecimaleAndroid: java.lang.IllegalArgumentException: colore Unknown

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

L'incriminato è ee3090b0. C'è un modo in cui posso convertire un valore esadecimale del colore nel suo equivalente intero e mantenere ancora il valore alfa? Ho provato in seguito al rilievo in questo post, ma non funziona ...

+0

Qual è il tipo di variabile 'colore'? –

+1

Un oggetto personalizzato chiamato Colore. – MissPiplup

+1

Si scopre che ho dimenticato di includere il # davanti alla stringa esadecimale. Quindi stavo passando "ee3090b0" invece di "# ee3090b0". – MissPiplup

risposta

39

Da documentation:

public static int parseColor (String colorString)

analizzare il colore stringa e restituisce il colore corrispondente-int. Se la stringa non può essere analizzata, genera un'eccezione IllegalArgumentException. I formati supportati sono: #RRGGBB #AARRGGBB 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow', 'lightgray', 'grigio scuro'

Il tuo metodo probabilmente restituisce una stringa che non inizia con un #.

+3

potrebbe verificarsi, se contenente spazio o nuova riga nella stringa del codice colore. quindi basta tagliare la stringa del codice colore. ad esempio: - colorcode.trim(); – jaleel

+0

vuole una stringa lunga 6 caratteri. Penso che lanci un'eccezione su 8 personaggi (o qualcosa di diverso da 6) – msecilmis

Problemi correlati