android - with - transparent color code




Transparence hexagonale en couleurs (7)

Cette question a déjà une réponse ici:

Je travaille sur l'implémentation d'une option de transparence wigdget pour mon widget d'application bien que j'aie du mal à obtenir les valeurs de couleurs hexadécimales. Étant complètement nouveau pour la transparence des couleurs hexadécimales, j'ai cherché un peu, même si je n'ai pas trouvé de réponse spécifique à ma question.

Je veux définir la transparence par couleur hexadécimale, donc disons que mon identifiant de couleur hexadécimal est "# 33b5e5" et je veux qu'il soit transparent à 50%. Ensuite, je vais utiliser "# 8033b5e5" parce que 80 est de 50%.

J'ai trouvé un tableau utile ici: http://www.dtp-aus.com/hexadeci.htm . Avec ces données, j'ai réussi à trouver cela:

0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144

Maintenant, les problèmes commencent à apparaître quand je reçois plus de 100 en hexadécimal. Les codes de couleur hexadécimaux ne peuvent être longs que de 8 symboles? Par exemple # 11233b5e5 (80%) des accidents.

Que puis-je faire pour que je puisse utiliser les chiffres plus élevés?


Ce graphique ne montre pas les pourcentages. "# 90" n'est pas "90%". Ce graphique montre la conversion hexadécimale en décimale. Le nombre hexadécimal 90 (typiquement représenté par 0x90) est équivalent au nombre décimal 144.

Les nombres hexadécimaux sont en base 16, de sorte que chaque chiffre est une valeur comprise entre 0 et F. La valeur maximale d'une valeur hexadécimale de deux octets (telle que la transparence d'une couleur) est 0xFF ou 255 en décimal. Ainsi 100% est 0xFF.


J'ai construit cette petite méthode d'aide pour une application Android, peut être utile:

 /**
 * @param originalColor color, without alpha
 * @param alpha         from 0.0 to 1.0
 * @return
 */
public static String addAlpha(String originalColor, double alpha) {
    long alphaFixed = Math.round(alpha * 255);
    String alphaHex = Long.toHexString(alphaFixed);
    if (alphaHex.length() == 1) {
        alphaHex = "0" + alphaHex;
    }
    originalColor = originalColor.replace("#", "#" + alphaHex);


    return originalColor;
}

Je me rends compte que c'est une vieille question, mais je l'ai rencontré en faisant quelque chose de similaire.

En utilisant SASS, vous avez une façon très élégante de convertir RGBA en hexadécimal ARGB: ie-hex-str . Je l'ai utilisé ici dans un mixin.

@mixin ie8-rgba ($r, $g, $b, $a){
    $rgba: rgba($r, $g, $b, $a);
    $ie8-rgba: ie-hex-str($rgba);
    .lt-ie9 &{
      background-color: transparent;
      filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}');
  }
}

.transparent{
    @include ie8-rgba(88,153,131,.8);
    background-color: rgba(88,153,131,.8);
}

les sorties:

.transparent {
  background-color: rgba(88, 153, 131, 0.8);
}
.lt-ie9 .transparent {
  background-color: transparent;
  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983');
  zoom: 1;
}


La notation hexadécimale couleur est comme suit: #AARRGGBB

  • A: alpha
  • R: rouge
  • G: vert
  • B: bleu

Vous devriez d'abord regarder comment fonctionne l' hexadecimal . Vous pouvez écrire au maximum FF.


Utiliser python pour le calculer, par exemple (écrit en python 3), 50% de transparence:

hex(round(256*0.50))

:)


Voici un tableau correct des pourcentages aux valeurs hexadécimales. Par exemple, pour 50% de blanc, vous utiliserez # 80FFFFFF.

  • 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

( source )








transparency