Estou tentando entender como as cores funcionam no Android. Eu tenho essa cor definida como plano de fundo LinearLayout
e recebo um plano de fundo cinza com alguma transparência:
<gradient android:startColor="#b4555555" android:endColor="#b4555555"
android:angle="270.0" />
Se eu remover os dois últimos caracteres (55), fico com uma cor sólida, perdendo a transparência. Eu estava tentando encontrar uma página onde eu pudesse ver alguma explicação sobre isso, mas não consegui encontrá-la.
fonte
<<
na página).O Android usa valores ARGB hexadecimais, formatados como #AARRGGBB. Esse primeiro par de letras, o AA, representa o canal alfa. Você deve converter seus valores decimais de opacidade em um valor hexadecimal. Aqui estão os passos:
Processo de valor alfa hex
É assim que você encontra o valor do canal alfa. Tomei a liberdade de elaborar uma lista de valores para você. Aproveitar!
Valores de opacidade hexadecimal
fonte
echo "obase=16; ibase=10; (255*12+50)/100" | bc
. (+50 - para arredondar para o valor mais próximo, é 100/2 realmente)Saindo da resposta de @BlondeFurious , aqui está um código Java para obter cada valor hexadecimal de 100% a 0% alfa:
Resultado:
Uma versão JavaScript está abaixo:
Mostrar snippet de código
Você também pode usar o Google "number to hex" onde 'number' é qualquer valor entre 0 e 255.
fonte
Android Material Design
Estas são as conversões para definir os níveis de opacidade da cor do texto.
Texto escuro em fundos claros
DE000000
8A000000
61000000
1F000000
Texto em branco sobre fundo escuro
FFFFFFFF
B3FFFFFF
80FFFFFF
1FFFFFFF
Veja também
fonte
No Android, as cores podem ser especificadas como RGB ou ARGB.
http://en.wikipedia.org/wiki/ARGB
No RGB, você tem dois caracteres para cada cor (vermelho, verde, azul) e no ARGB, você tem dois caracteres adicionais para o canal alfa.
Portanto, se você tiver 8 caracteres, é ARGB, com os dois primeiros caracteres especificando o canal alfa. Se você remover os dois caracteres iniciais, será apenas RGB (cores sólidas, sem alfa / transparência). Se você deseja especificar uma cor no seu código-fonte Java, é necessário usar:
Referencia: argb
fonte
Um valor de cor hexadecimal de 8 dígitos é uma representação de ARGB (Alfa, Vermelho, Verde, Azul), enquanto um valor de 6 dígitos assume apenas 100% de opacidade (totalmente opaco) e define apenas os valores RGB. Portanto, para tornar isso totalmente opaco, você pode usar # FF555555 ou apenas # 555555. Cada valor hexadecimal de 2 dígitos é um byte, representando valores de 0 a 255.
fonte
na nova versão do Chrome (talvez 67.0.3396.62), a cor hexadecimal CSS pode usar a exibição deste modelo,
por exemplo:
cc é opacidade, mas o chrome antigo não suporta esse mod
fonte