Les couleurs du tableau this ne sont pas toutes transparentes. Je suppose que la valeur de A
est définie sur FF
.
Quel est le code pour la transparence?
Par exemple, cette couleur FFF0F8FF (AliceBlue), en un code transparent tel que ??F0F8FF
?
La transparence est contrôlée par le canal alpha (AA
dans #AARRGGBB
). La valeur maximale (255 déc, FF hex) signifie totalement opaque. La valeur minimale (0 déc, 00 hex) signifie une transparence totale. Les valeurs intermédiaires sont semi-transparentes, c'est-à-dire que la couleur est mélangée à la couleur d'arrière-plan.
Pour obtenir une couleur totalement transparente, définissez l'alpha sur zéro. RR
, GG
et BB
ne sont pas pertinents dans ce cas car aucune couleur ne sera visible. Cela signifie que #00FFFFFF
("blanc transparent") a la même couleur que #00F0F8FF
("transparent AliceBlue"). Pour rester simple, on choisit le noir (#00000000
) ou le blanc (#00FFFFFF
) si la couleur n'a pas d'importance.
Dans le tableau auquel vous êtes lié, vous trouverez Transparent
défini comme #00FFFFFF
.
Voici la table des valeurs% à hexa
Exemple: pour 85% de blanc, vous utiliseriez # D9FFFFFF.
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
Ajoutant aux autres réponses et ne faisant rien de plus que ce que @Maleta a expliqué dans un commentaire sur https://stackoverflow.com/a/28481374/1626594 , faire alpha * 255 puis arrondissez ensuite à hex . Voici un convertisseur rapide http://jsfiddle.net/8ajxdLap/4/
function rgb2hex(rgb) {
var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?((?:[0-9]*[.])?[0-9]+)[\s+]?\)/i);
if (rgbm && rgbm.length === 5) {
return "#" +
('0' + Math.round(parseFloat(rgbm[4], 10) * 255).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
} else {
var rgbm = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
if (rgbm && rgbm.length === 4) {
return "#" +
("0" + parseInt(rgbm[1], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[2], 10).toString(16).toUpperCase()).slice(-2) +
("0" + parseInt(rgbm[3], 10).toString(16).toUpperCase()).slice(-2);
} else {
return "cant parse that";
}
}
}
$('button').click(function() {
var hex = rgb2hex($('#in_tb').val());
$('#in_tb_result').html(hex);
});
body {
padding: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Convert RGB/RGBA to hex #RRGGBB/#AARRGGBB:<br>
<br>
<input id="in_tb" type="text" value="rgba(200, 90, 34, 0.75)"> <button>Convert</button><br>
<br> Result: <span id="in_tb_result"></span>
Il suffit d'utiliser ceci:
Android: background = "# 00FFFFFF"
ça va faire ton travail.