android顏色值的表示方法android:background="#FFFFFFFF"的意思

pan_jinquan發表於2015-07-19

android顏色值的表示方法

android:background="#FFFFFFFF"的意思

Android中的顏色值是通過紅(Red)、綠(Green)、藍(Blue)三原色,以及一個透明度(Alpha)值來表示,顏色值總是以井(#)開頭,接著是Alpha-Red-Green-Blue的形式。其中Alpha值可以省略,如果省略Alpha值,那麼該顏色預設是不透明的。

Android顏色值一般有四種形式:

  • #RGB:分別表示紅、綠、藍三原色的值(該表示方法只支援0~F16級的顏色)來表示顏色。
  • #ARGB:分別表示透明度(只支援0~F16級的透明度)、紅、綠、藍的三原色的值該表示方法只支援0~F16級的顏色)
  • #RRGGBB:分別表示紅、綠、藍三原色的值(該表示方法只支援00~FF256級的顏色)來表示顏色。
  • #AARRGGBB:分別表示透明度(只支援00~FF256級的透明度)、紅、綠、藍三原色的值(該表示方法只支援00~FF256級的顏色)來表示顏色。

上面四種形式,ARGB都表示一個十六進位制的數,其中A代表透明度,R代表紅色的數值,G代表綠色的數值,B代表藍色的數值。

下面是相關的參考資料:

6位(#000000)就是RGB值

8位(#1e000000)頭兩位是透明度,後6位是RGB值,00是完全透明,ff是完全不透明,比較適中的透明度值是 1e

1、使用Color類的常量,如:

  1. int color = Color.BLUE;  // 建立一個藍色 是使用Android提供的顏色 
  2. int color = Color.RED; 
  3. int color = Color.WHITE;

2、通過ARGB構建,如:

  1. int color = Color.argb ( 127,  255,  0,  255 );  // 半透明的紫色

其中第一個參數列示透明,0表示完全透明,255(ff)表示完全不透明;後三位分別代表RGB的值了。

3、使用XML資原始檔來定義顏色

該方法擴充套件性好,便於修改和共享,如在values目錄下建立一個color.xml:

  1. <?xml version=” 1.0” encoding=”utf -8”> 
  2. <resources> 
  3. <color name=”mycolor”> #7fff00ff</color> 
  4. </resources> 

定義了一個名為mycolor的顏色,在別的地方就可以通過引用mycolor來獲取該顏色值,如textView定義中:

  1. android:textColor= "@drawable/mycolor" 

Java程式碼中可以使用ResourceManager類中的getColor來獲取該顏色:

  1. int color = getResources().getColor(R.color.mycolor); 

這與第二種方法得到的值是一樣的,getResources()方法返回當前活動Activity的ResourceManager類例項。

說明:XML定義方法接受6位和8位兩種表示法,而且開頭必須是#,8位定義時前兩位表示透明。

4、直接定義色值,如:

  1. android:textColor= "@drawable/mycolor" 

這種方法必須使用0x開頭,而不是用我們常用的#。與方法3不一樣,值也必須用8位表示 ,不接受6位的顏色表示。分組一下0x|ff|ff00ff,0x是代表顏色整數的標記,ff是表示透明度,ff00ff表示RGB顏色值。

=======================

補充一點Android佈局中背景圖片的設定(編輯LinearLayout):

* 可以使用純色:android:background="@drawable/mycolor" (XML資原始檔中定義的顏色)

* 也可使用圖片:android:background="@drawable/bg" (需要將一個名為bg.jpg或png的圖片拷貝到res/drawable-hdpi目錄下)


相關文章