天天看點

Android中透明度的使用(基礎)

前言:

開發過程中,設定控件的顔色是經常要做的,而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表示完全透明。

繼續閱讀