2011-11-22 25 views
15

estoy recibiendo el error anterior cuando trato de ejecutar el siguiente código: valor hexadecimalAndroid: java.lang.IllegalArgumentException: Color Desconocido

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

El infractor es ee3090b0. ¿Hay alguna forma de que pueda convertir un valor hexadecimal de color en su equivalente entero y aún así conservar el valor alfa? He intentado siguiendo una sugerencia hecha en este post, pero no está funcionando ...

+0

¿Cuál es el tipo de variable 'color'? –

+1

Un objeto personalizado llamado Color. – MissPiplup

+1

Resulta que olvidé incluir el # delante de la cadena hexadecimal. Así que estaba pasando "ee3090b0" en lugar de "# ee3090b0". – MissPiplup

Respuesta

39

De documentation:

int parseColor (String colorString) public static

analizar el color de cadena, y devuelve el color correspondiente-int. Si la cadena no se puede analizar, arroja una excepción IllegalArgumentException. Los formatos admitidos son: #RRGGBB #AARRGGBB 'rojo', 'azul', 'verde', 'negro', 'blanco', 'gris', 'cian', 'magenta', 'amarillo', 'gris claro', 'gris_oscuro'

Su método probablemente devuelve una cadena que no se inicia con una #.

+3

esto puede ocurrir, si contiene espacio o nueva línea en su cadena de código de color. así que solo recorte la cadena del código de color. por ejemplo: - colorcode.trim(); – jaleel

+0

quiere una cadena de 6 caracteres de largo. Creo que arroja una excepción en 8 caracteres (o cualquier cosa que no sea 6) – msecilmis

Cuestiones relacionadas