Los colores hexadecimales en Android son algunas veces 8 dígitos. ¿Cómo? ¿Cuál es la diferencia entre #FFFFFF y # FFFFFF00?

81

A veces he visto ejemplos en los que la coloración en Android se realiza como # FF191919. Me refiero a un número hexadecimal de 8 dígitos. Pero debe ser solo un número de 6 dígitos. ¿Como están relacionados? Si quiero convertir un número de 6 dígitos en un número de 8 dígitos. ¿Cómo hacerlo? Me refiero a convertir # 424242 en un colorante numérico de 8 dígitos. Por favor déjeme saber los detalles. Gracias por su tiempo y ayuda.

Vinod
fuente

Respuestas:

104

Los 2 dígitos adicionales se utilizan para definir la transparencia de los colores o el canal alfa.

Android usa el formato ARGB (o AARRGGBB como lo usas en tu ejemplo)

Para obtener más información (específica de Android), consulte la documentación de Color

Veger
fuente
¿Existe un buen programa para usar que le muestre los colores después de escribir los 8 dígitos?
anon58192932
Hay muchas: cualquier aplicación de dibujo que se precie acepta la entrada RGBA y muestra el color resultante. O busque 'selector de color rgb' o 'rueda de color rgb' para encontrar un sitio web que brinde este servicio. (Nota: los dígitos alfa no son realmente interesantes ya que definen la transparencia y no influyen en el color)
Veger
1
La respuesta sola no deja claro cuáles son esos 2 dígitos adicionales. ¿dos primeros? los dos últimos? dos dígitos en algún lugar en el medio?
Abhishek Jain
'2 dígitos adicionales' sugieren que se agregan (por lo tanto, los dos últimos), pero actualizaré la respuesta para que esto sea explícito y correcto
Veger
46

Los dos primeros caracteres representan el valor alfa (transparencia), donde FFes completamente visible. Esto se conoce como aRGB.

shanethehat
fuente
1
entonces, por ejemplo, #FF000000es lo mismo que #000000, ¿cuál es solo negro sólido?
Bruno Finger
14

El hexadecimal de 8 dígitos es un color ARGB . Es el mismo que el RGB habitual , pero proporciona un canal alfa adicional.

#RRGGBBen RGB es lo mismo que #00RRGGBBen ARGB. También eche un vistazo a Color.argb .

Andy
fuente
9

Un Android HEx de 8 dígitos se llama aRGB. Los valores de aRGB se expresan típicamente usando 8 dígitos hexadecimales, y cada par de dígitos hexadecimales representa los valores del canal Alfa, Rojo, Verde y Azul, respectivamente. Por ejemplo, 80FFFF00 representa 50,2% de amarillo opaco (no premultiplicado). El valor 80 hexadecimal, que es 128 en decimal, representa un valor alfa del 50,2% porque 128 es aproximadamente el 50,2% del valor máximo de 255 (FF hexadecimal); para seguir descifrando el valor 80FFFF00, el primer FF representa el valor máximo que puede tener el rojo; el segundo FF es como el anterior pero en verde; el 00 final representa el valor mínimo que puede tener el azul (efectivamente, no el azul). En consecuencia, rojo + verde produce amarillo. En los casos en los que no se utilice el alfa, este se puede acortar a 6 dígitos RRGGBB, por eso se eligió poner el alfa en los bits superiores.

Terry Miller
fuente
8

el color de 8 dígitos se define con el nivel de alpa

vamos a extraer todo, definimos el color hexadecimal como 6 pares de valores de rgb 2 dígitos por

1er 2 dígitos para rojo, 2do 2 dígitos para verde y 3er 2 dígitos para azul ahora si desea establecer el nivel alfa de eso, entonces defina con los 8 dígitos como ARGB entonces, ahora el primer valor de 2 dígitos se definió para el alfa y el resto es para el RGB

Pratik
fuente