Saltar al contenido

Flutter / Dart: convierte el color HEX string ¿colorear?

Después de de nuestra larga compilación de información hemos podido solucionar esta incógnita que tienen ciertos de nuestros lectores. Te compartimos la solución y deseamos servirte de gran apoyo.

Solución:

/// Construct a color from a hex code string, of the format #RRGGBB.
Color hexToColor(String code) 
  return new Color(int.parse(code.substring(1, 7), radix: 16) + 0xFF000000);

Estoy usando esta función en mi proyecto que se encarga de convertir el hexadecimal string a un color.

Color hexToColor(String hexString, String alphaChannel = 'FF') 
  return Color(int.parse(hexString.replaceFirst('#', '0x$alphaChannel')));

La idea aquí es que ahora puedes pasar esta función un hexadecimal string que es algo como esto ‘#ffffff’ además de que puedes pasar un canal alfa. Lo que hace el canal alfa es manejar la opacidad de su color y puede pasarlo a Color directamente.

Acerca de los canales alfa, la parte FF es una representación hexadecimal de 0-100 es como:

0 = 00 1 = 03 2 = 05 … 9 = 17 … 10 = 1A 11 = 1C 12 = 1F … 99 = FC 100 = FF

Supongamos que desea convertir # 000000 en un color y tiene una opacidad de 0.1. Simplemente puede llamar a esta función así:

hexToColor('#000000', alphaChannel: '1A');

Y si lo llamas así:

hexToColor('#000000');

Entonces solo te devolverá un color negro con 1 opacidad. Espero que esto ayude a cualquiera que se pregunte cómo manejar la opacidad y el manejo del color un poco más.

Terminé haciéndolo de esta manera:

hexStringToHexInt(String hex) 
  hex = hex.replaceFirst('#', '');
  hex = hex.length == 6 ? 'ff' + hex : hex;
  int val = int.parse(hex, radix: 16);
  return val;

Comentarios y valoraciones

Si guardas alguna suspicacia o forma de medrar nuestro post eres capaz de escribir una ilustración y con deseo lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *