222 votes

Couleurs de compréhension dans Android (6 caractères)

Je suis en train de comprendre le fonctionnement des couleurs dans Android. J’ai cette couleur définie comme le fond de mon `` et je reçois un fond gris avec une certaine transparence.

Si je retire les deux derniers caractères (55), je reçois une couleur unie, perdre de la transparence. J’essayais de trouver une page où je peux voir quelques explications à ce sujet mais impossible de le trouver.

Cela peut être question d’un débutant, mais je suis intrigué par ce dès maintenant.

1202voto

BlondeFurious Points 2041

Android utilise Hex ARGB valeurs, qui sont au format #AARRGGBB. Cette première paire de lettres, de l'AA, représentent le Canal Alpha. Vous devez convertir votre décimal des valeurs d'opacité pour une séquence hexadécimale de la valeur. Voici les étapes:

Alpha Hex Processus De Valeur

  1. Prenez votre opacité comme une valeur décimale et de le multiplier par 255. Donc, si vous avez un bloc qui est à 50% d'opacité de la valeur décimale serait .5. Pour exemple: 5 x 255 = 127.5
  2. La fraction ne sera pas converti en hexadécimal, donc vous devez le tour de votre numéro vers le haut ou vers le bas à l'entier le plus proche. Par exemple: 127.5 tours jusqu'à 128; 55.25 arrondit à 55.
  3. Entrez votre valeur décimal en un nombre décimal en hexadécimal convertisseur, comme ceci http://www.binaryhexconverter.com/decimal-to-hex-converteret la conversion de vos valeurs
  4. Si vous obtenez seulement d'une seule valeur, faites-le précéder d'un zéro. Par exemple, si vous essayez d'obtenir 5% de l'opacité et de ta marche à travers ce processus, vous vous retrouverez avec la valeur hexadécimale de D. Ajouter un zéro en face de sorte qu'il apparaît comme 0D.

C'est comment vous trouver la valeur du canal alpha. J'ai pris la liberté de mettre une liste de valeurs pour vous. Profitez-en!

Hex Valeurs D'Opacité

  • 100% - FF
  • 95% - F2
  • 90% - E6
  • 85% - D9
  • 80% - CC
  • 75% - BF
  • 70% - B3
  • 65% - A6
  • 60% - 99
  • 55% - 8C
  • 50% - 80
  • 45% - 73
  • 40% - 66
  • 35% - 59
  • 30% - 4D
  • 25% - 40
  • 20% - 33
  • 15% - 26
  • 10% - 1A
  • 5% - 0D
  • 0% - 00

204voto

Jared Rummler Points 661

Sautez la réponse de @BlondeFurious, voici un code de Java pour obtenir chaque valeur hexadécimale de 100 % à 0 % alpha :

sortie :

174voto

Jon Skeet Points 692016

Si vous fournissez à 6 chiffres hexadécimaux, qui signifie RVB (2 chiffres hexadécimaux pour chaque valeur de rouge, vert et bleu).

Si vous fournissez des 8 chiffres hexadécimaux, c'est un ARGB (2 chiffres hexadécimaux pour chaque valeur de l'alpha, rouge, vert et bleu respectivement).

Donc en fait vous êtes en changeant de R=B4, G=55, B=55=B5, R=55, G=55, B=55, qui est pourquoi il est essentiellement transparent de couleur gris.

Voir la "Couleur" de la documentation pour les formats pris en charge.

17voto

alibi Points 658

Dans Android, les couleurs sont peut être spécifié comme RVB ou ARGB.

http://en.wikipedia.org/wiki/ARGB

En RVB, vous avez deux caractères pour chaque couleur (rouge, vert, bleu), dans ARGB vous avez deux autres caractères pour le canal alpha.

Donc, si vous avez 8 caractères, il est ARGB, avec les deux premiers caractères spécifiant le canal alpha. Si vous supprimez les deux principaux caractères il est seulement RVB (couleurs solides, pas d'alpha/transparence). Si vous souhaitez spécifier une couleur dans votre code source java, vous devez utiliser

int Color.argb (int alpha, int red, int green, int blue)

alpha   Alpha component [0..255] of the color
red     Red component [0..255] of the color
green   Green component [0..255] of the color
blue    Blue component [0..255] of the color

http://developer.android.com/reference/android/graphics/Color.html#argb(int, int, int, int)

7voto

kcoppock Points 57219

Une valeur de couleur hexadécimale 8 chiffres est une représentation d’ARVB (Alpha, rouge, vert, bleu), considérant qu’une valeur de 6 chiffres juste suppose une opacité de 100 % (complètement opaque) et définit simplement les valeurs RVB. Ainsi, afin d’y être totalement opaque, vous pouvez utiliser #FF555555, ou simplement #555555. Chaque valeur hexadécimale à 2 chiffres correspond à un octet, qui représentent les valeurs entre 0 et 255.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X