前言:
開發過程中,設定控件的顔色是經常要做的,而UI設計師在有些時候會标出一定比例的透明度,那我們應該如何設定透明度和計算透明度呢?
顔色與透明度基本介紹
- Android中的顔色值
一般都是遵循RGB/ARGB标準,一“#”開頭,16進制進行表示。ARGB中的A代表透明度(alpha),R代表紅色(red),G代表綠色(green),B代表藍色(blue)。
例如:#FFDBDBDB FF是透明度,DB是紅色值,DB是綠色值,DB是藍色值
- 透明度
1)透明度是分為256階(0-255),計算機上用16進制表示為(00-ff)。透明就是0階,不透明是255階,不透明就是255階,如果50%透明就是127階(256的一半當然是128,但因為是從0開始,是以實際上是127)。
2)ARGB中所換算出來的透明度值alpha,實際所表示的是不透明度。
3)透明度與不透明度二者是相對的,加起來是百分之百
透明度的基本換算
例如:UI設計師給出的顔色值為#000000,透明度為百分之30
1)先拿到不透明度(alpha) 1-30%=70%
2)不透明度乘以255得到178.5 因為階數是從0開始到255 是以算為178
3)然後将178進行16進制計算。得到的最終不透明度(alpha)為B3
4)将不透明度和顔色值拼接成ARGB格式最終顔色值為#B3000000
附錄
為了友善大家使用,不用每次計算,大部分常用的透明度和進制計算結果如下:
透明度(UI給出) | 16進制表示 |
---|---|
100% | 00 |
95% | 0D |
90% | 1A |
85% | 26 |
80% | 33 |
75% | 40 |
70% | 4D |
65% | 59 |
60% | 66 |
55% | 73 |
50% | 80 |
45% | 8C |
40% | 99 |
35% | A6 |
30% | B3 |
25% | BF |
20% | CC |
15% | D9 |
10% | E6 |
5% | F2 |
0% | FF |
透明度的設定方法
- 根據上面計算出來的alpha不透明度值,組成ARGB格式,在xml布局中進行設定
<TextView
android:id="@+id/text"
android:text="Hello World!"
android:background="#80987654"
android:layout_width="match_parent"
android:layout_height="100dp" />
- java代碼實作
View v = findViewById(R.id.content);
v.getBackground().setAlpha(100);//0~255透明度值 ,0為完全
setAlpha()的括号中可以填0–255之間的數字。數字越大,越不透明。
- 在xml布局中進行設定
<TextView
android:id="@+id/text"
android:text="Hello World!"
android:background="#987654"
android:layout_width="match_parent"
android:alpha="0.5"
android:layout_height="100dp" />
android:alpha的值為0~1之間的數。數字越大,越不透明。1表示完全不透明,0表示完全透明。