Estoy tratando de entender cómo funcionan los colores en Android. Tengo este color configurado como fondo de mi LinearLayout
, y obtengo un fondo gris con algo de transparencia:
<gradient android:startColor="#b4555555" android:endColor="#b4555555"
android:angle="270.0" />
Si elimino los dos últimos caracteres (55) obtengo un color sólido, perdiendo la transparencia. Estaba tratando de encontrar una página donde pueda ver alguna explicación sobre esto, pero no pude encontrarla.
fuente
<<
en la página).Android usa valores ARGB hexadecimales, que están formateados como #AARRGGBB. Ese primer par de letras, el AA, representa el canal alfa. Debe convertir sus valores de opacidad decimal a un valor hexadecimal. Aquí están los pasos:
Proceso de valor Alpha Hex
Así es como encuentras el valor del canal alfa. Me he tomado la libertad de armar una lista de valores para ti. ¡Disfrutar!
Valores de opacidad hexadecimal
fuente
echo "obase=16; ibase=10; (255*12+50)/100" | bc
. (50 - para el redondeo al valor más cercano, que es en realidad 100/2)Saliendo de la respuesta de @BlondeFurious , aquí hay un código Java para obtener cada valor hexadecimal de 100% a 0% alfa:
Salida:
A continuación se muestra una versión de JavaScript:
Mostrar fragmento de código
También puede simplemente Google "número a hexadecimal" donde 'número' es cualquier valor entre 0 y 255.
fuente
Diseño de material de Android
Estas son las conversiones para establecer los niveles de opacidad del color del texto.
Texto oscuro sobre fondos claros.
DE000000
8A000000
61000000
1F000000
Texto blanco sobre fondos oscuros
FFFFFFFF
B3FFFFFF
80FFFFFF
1FFFFFFF
Ver también
fuente
En Android, los colores se pueden especificar como RGB o ARGB.
http://en.wikipedia.org/wiki/ARGB
En RGB tiene dos caracteres para cada color (rojo, verde, azul), y en ARGB tiene dos caracteres adicionales para el canal alfa.
Entonces, si tiene 8 caracteres, es ARGB, con los dos primeros caracteres que especifican el canal alfa. Si elimina los dos caracteres iniciales, solo es RGB (colores sólidos, sin alfa / transparencia). Si desea especificar un color en su código fuente de Java, debe usar:
Referencia: argb
fuente
Un valor de color hexadecimal de 8 dígitos es una representación de ARGB (Alfa, Rojo, Verde, Azul), mientras que un valor de 6 dígitos solo asume un 100% de opacidad (totalmente opaco) y define solo los valores RGB. Entonces, para que esto sea completamente opaco, puede usar # FF555555 o simplemente # 555555. Cada valor hexadecimal de 2 dígitos es un byte, que representa valores de 0-255.
fuente
en la nueva versión de Chrome (quizás 67.0.3396.62), el color hexadecimal CSS puede usar esta pantalla de modelo,
p.ej:
cc es opacidad, pero el viejo Chrome no admite ese mod
fuente