回答:
透明度は、アルファチャンネル(によって制御されるAA
で#AARRGGBB
)。最大値(10進255、16進FF)は完全に不透明であることを意味します。最小値(0 dec、00 hex)は完全に透明であることを意味します。中間の値は半透明です。つまり、色は背景色と混合されます。
完全に透明な色を得るには、アルファをゼロに設定します。RR
、GG
およびBB
この場合、色は表示されないため、無関係です。これは、#00FFFFFF
(「透明な白」)が#00F0F8FF
(「透明なAliceBlue」)と同じ色であることを意味します。シンプルにするために、色が重要でない場合は黒(#00000000
)または白(#00FFFFFF
)を選択します。
リンクした表では、Transparent
として定義されてい#00FFFFFF
ます。
7F
です。電卓を16進モードにしてください。これでうまくいきます。
#7FFFFFFF
です。
以下は、16進数値に対する%の表です。
例:85%の白の場合、を使用します#D9FFFFFF
。
ここで85%= "D9"&白= "FFFFFF"
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
どのように計算されますか?
FFは16進モードで書き込まれた数値です。その数は10進数で255を表します。たとえば、42%を計算する場合は、numbeer 255の42%を見つけて、その数値を16進数に変換する必要があります。255 * 0.42〜= 107 107から16進数は "6B –マレタ
他の回答に追加して、@ Maletaがhttps://stackoverflow.com/a/28481374/1626594のコメントで説明したことを何もせずに、alpha * 255を実行してから16進数に丸めます。ここにクイックコンバーターがあります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>
これを使うだけです:
android:background = "#00FFFFFF"
それはあなたの仕事をします。
16進数の値があり、アルファの値がどうなるか疑問に思っている場合は、次のスニペットが役立ちます。
const alphaToHex = (alpha => {
if (alpha > 1 || alpha < 0 || isNaN(alpha)) {
throw new Error('The argument must be a number between 0 and 1');
}
return Math.ceil(255 * alpha).toString(16).toUpperCase();
})
console.log(alphaToHex(0.45));