概述 :
ARGB 中 A 是不透明度颅悉,特別注意
顏色
Android中的顏色值通常遵循RGB/ARGB標準钧萍,使用時通常以“#”字符開頭举反,以16進制表示约谈。
常用的顏色值格式為:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
對于后面的二種格式碗啄,至少在Android 開發(fā)中质和,我是沒有碰到的。更多的是 RGB 和 ARGB這兩種格式稚字。也就是 三通道和四通道饲宿。
其中厦酬,ARGB 依次代表透明度(alpha)、紅色(red)瘫想、綠色(green)仗阅、藍色(blue)。
對于每一個顏色通道国夜,其數(shù)值是從 0 ~255减噪。
采用的是 16進制表現(xiàn)方式。
所以一個通道的值的范圍是 : 0 ~ ff;
以顏色值 #FF99CC00 為例车吹,其中筹裕,F(xiàn)F 是透明度,99 是紅色值窄驹, CC 是綠色值朝卒, 00 是藍色值。
下面重點說下透明度:
透明度
透明度分為256階(0-255)馒吴,計算機上用16進制表示為(00-ff)扎运。透明就是0階,不透明就是255階,如果50%透明就是127階(256的一半當然是128饮戳,但因為是從0開始豪治,所以實際上是127)。
那么 127 對應的 16進制數(shù)字是 7f扯罐。
透明度 和 不透明度 是兩個概念负拟, 它們加起來是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給的標注圖上厨姚,所有顏色值是RGB,但是透明度經常都是百分比键菱,
例如:顏色值:#FFFFFF,透明度40%谬墙。
使用過程中我們需要進行換算。以之前的值為例经备,換算過程如下:
- 1.將透明度轉換成不透明度 拭抬。
透明度 40 % ,那么不透明度為60%
不透明度乘以255侵蒙。 我們得到結果:153
- 2 .將計算結果轉換成16進制造虎。
153 的 16進制表示為 90;得到最終的不透明度:99
- 3.將不透明度和顏色值拼接成ARGB格式纷闺。得到最終的顏色值: #99FFFFFF
上述就是整個轉換過程算凿,有了這些過程份蝴,那么任何透明度的計算都沒什么問題了。
簡單的換算澎媒,可以先將透明度搞乏,轉換成不透明度波桩,再根據(jù)下面的表格進行對應戒努。
注意:下表 % ==表示的是不透明度,不是透明度镐躲。==
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