Android中透明度的使用(基礎)
阿新 • • 發佈:2018-12-18
前言:
開發過程中,設定控制元件的顏色是經常要做的,而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表示完全透明。