轉(zhuǎn)自:Android 顏色透明度換算
簡(jiǎn)介
顏色
Android中的顏色值通常遵循RGB/ARGB標(biāo)準(zhǔn)狞甚,使用時(shí)通常以“#”字符開頭坝撑,以16進(jìn)制表示。常用的顏色值格式為:
1 #RGB
2 #ARGB
3 #RRGGBB
4 #AARRGGBB
其中,ARGB 依次代表透明度(alpha)婶肩、紅色(red)捌袜、綠色(green)说搅、藍(lán)色(blue)。以顏色值 #FF99CC00 為例虏等,其中弄唧,F(xiàn)F 是透明度适肠,99 是紅色值, CC 是綠色值候引, 00 是藍(lán)色值侯养。
透明度
- 透明度分為256階(0-255),計(jì)算機(jī)上用16進(jìn)制表示為(00-ff)澄干。透明就是0階逛揩,不透明就是255階,如果50%透明就是127階(256的一半當(dāng)然是128,但因?yàn)槭菑?開始麸俘,所以實(shí)際上是127)辩稽。
- 透明度和不透明度是兩個(gè)概念, 它們加起來是1从媚,或者100%.
- ARGB 中的透明度alpha逞泄,表示的是不透明度。依據(jù)來自維基百科中的定義拜效。
The alpha channel is normally used as an opacity channel. If a pixel has a value of 0% in its alpha channel, it is fully transparent (and, thus, invisible), whereas a value of 100% in the alpha channel gives a fully opaque pixel (traditional digital images). Values between 0% and 100% make it possible for pixels to show through a background like a glass, an effect not possible with simple binary (transparent or opaque) transparency. It allows easy image compositing.
換算
在開發(fā)過程中喷众,UI/UE給的標(biāo)注圖上,所有顏色值是RGB紧憾,但是透明度經(jīng)常都是百分比到千,例如:顏色值:#FFFFFF,透明度40%。使用過程中我們需要進(jìn)行換算稻励。以之前的值為例父阻,換算過程如下:
- 將透明度轉(zhuǎn)換成不透明度(轉(zhuǎn)換方式參考“透明度”,第2條) 望抽。 不透明度為60%
- 不透明度乘以255加矛。 我們得到結(jié)果:153
- 將計(jì)算結(jié)果轉(zhuǎn)換成16進(jìn)制。得到最終的不透明度:99
在線進(jìn)制轉(zhuǎn)換:http://tool.oschina.net/hexconvert
- 將不透明度和顏色值拼接成ARGB格式煤篙。得到最終的顏色值: #99FFFFFF
簡(jiǎn)單的換算斟览,可以先將透明度,轉(zhuǎn)換成不透明度辑奈,再根據(jù)下面的表格進(jìn)行對(duì)應(yīng)苛茂。
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