1. 程式人生 > >Android開發筆記(二)顏色的使用

Android開發筆記(二)顏色的使用

顏色的編碼

Android中顏色值的定義是由透明度alpha和RGB(紅綠藍)三原色來定義的,有八位十六進位制數與六位十六進位制數兩種編碼,例如八位FFEEDDCC,前兩位FF表示透明度,後面兩位EE表示紅色的濃度,再後面兩位表示綠色的濃度,最後兩位表示藍色的濃度。 透明度為FF時表示完全不透明,為00時表示完全透明。六位編碼有兩種情況,在XML檔案中預設不透明(即透明度為FF),在程式碼中預設透明(即透明度為00),博主經常把透明度弄反了,所以著重記一下。 RGB三色的數值越大,表示顏色越濃也就是越亮,數值越小表示顏色越暗。亮到極致就是白色,暗到極致就是黑色,這樣記就不會搞混了。  

顏色的設定

Android系統有十二種已經定義好的顏色,分別是Color類下面的BLACK(黑色)、DKGRAY(深灰)、GRAY(灰色)、LTGRAY(淺灰)、WHITE(白色)、RED(紅色)、GREEN(綠色)、BLUE(藍色)、YELLOW(黃色)、CYAN(青色)、MAGENTA(玫瑰紅)、TRANSPARENT(透明)。 在佈局檔案中設定顏色,需要在色值前面加“#”,如android:textColor="#000000" 在程式碼中設定顏色,可以直接填八位的十六進位制數值,如setTextColor(0xff00ff00);,也可以通過Color.rgb(int red, int green, int blue)和Color.argb(int alpha, int red, int green, int blue)來指定顏色。程式碼中一般不要用六位編碼,因為六位編碼在程式碼中預設透明,所以程式碼用六位顏色跟不設顏色沒什麼區別。 如果在程式碼中使用colors.xml中設定的顏色,可按如下方式獲取 setTextColor(getResources().getColor(R.color.black)); 

RGB顏色表示方法

其中R、G、B的每個數值都位於0-255之間。在表達顏色的時候,即可以使用三個數字來表達,也可以使用一個格式如0X00RRGGBB這樣格式的十六進位制來表達,下面是常見顏色的表達形式:

  紅色:(255,0,0)或0x00FF0000

  綠色:(0,255,0)或0x0000FF00

  藍色:(0,0,255)或0x000000FF 

在編寫Android彩色影象處理程式時,需要對影象進行灰度化和二值化處理,很多地方不懂,在借鑑別人的程式碼是看到這樣的表示:

red = (rgb & 0x00ff0000) >> 16;

首先將顏色值與十六進位制表示的00ff0000進行“與”運算,運算結果除了表示紅色的數字值之外,GGBB部分顏色都為0,在將結果向右移位16位,得到的就是紅色值。所以這句程式碼主要用來從一個顏色中抽取其組成色---紅色的值。

int color = 0x0012faff;

例如:我們已經獲取一種顏色,如上所示color。那麼下面這段程式碼的結果將會是18,它是0x12的十進位制表示值。

  1. int redOnly = color & 0x00ff0000;
  2. System.out.println(redOnly >> 16);

同樣的,我們也可以通過以下程式碼得到green和blue的值:

  1. int green = (color & 0x0000ff00) >> 8; // 250 = 0xfa
  2. int blue = (color & 0x000000ff); // 255 = 0xff

RGB顏色表

如paint.setARGB(255, 127, 255, 212);就需要自己計算下分量的各個值。這裡提供一個帶有r g b分量的int型的顏色表。注意paint.setAlpha()及paint.setARGB()的第一個引數,即透明度。其取值範圍是0---255,數值越小,越透明,顏色上表現越淡。實際上當設成10以下就會有透明的效果了。

注意:這個透明度是用來設定畫筆paint的透明度,然後用paint畫各種東西。

常用RGB顏色表

R G B R G B R G B
黑色 0 0 0 #000000 黃色 255 255 0 #FFFF00 淺灰藍色 176 224 230 #B0E0E6
象牙黑 41 36 33 #292421 香蕉色 227 207 87 #E3CF57 品藍 65 105 225 #4169E1
灰色 192 192 192 #C0C0C0 鎘黃 255 153 18 #FF9912 石板藍 106 90 205 #6A5ACD
冷灰 128 138 135 #808A87 dougello 235 142 85 #EB8E55 天藍 135 206 235 #87CEEB
石板灰 112 128 105 #708069 forum gold 255 227 132 #FFE384
暖灰色 128 128 105 #808069 金黃色 255 215 0 #FFD700 青色 0 255 255 #00FFFF
黃花色 218 165 105 #DAA569 綠土 56 94 15 #385E0F
白色 255 255 255 #FFFFFF 瓜色 227 168 105 #E3A869 靛青 8 46 84 #082E54
古董白 250 235 215 #FAEBD7 橙色 255 97 0 #FF6100 碧綠色 127 255 212 #7FFFD4
天藍色 240 255 255 #F0FFFF 鎘橙 255 97 3 #FF6103 青綠色 64 224 208 #40E0D0
白煙 245 245 245 #F5F5F5 胡蘿蔔色 237 145 33 #ED9121 綠色 0 255 0 #00FF00
白杏仁 255 235 205 #FFFFCD 桔黃 255 128 0 #FF8000 黃綠色 127 255 0 #7FFF00
cornsilk 255 248 220 #FFF8DC 淡黃色 245 222 179 #F5DEB3 鈷綠色 61 145 64 #3D9140
蛋殼色 252 230 201 #FCE6C9 翠綠色 0 201 87 #00C957
花白 255 250 240 #FFFAF0 棕色 128 42 42 #802A2A 森林綠 34 139 34 #228B22
gainsboro 220 220 220 #DCDCDC 米色 163 148 128 #A39480 草地綠 124 252 0 #7CFC00
ghostWhite 248 248 255 #F8F8FF 鍛濃黃土色 138 54 15 #8A360F 酸橙綠 50 205 50 #32CD32
蜜露橙 240 255 240 #F0FFF0 鍛棕土色 135 51 36 #873324 薄荷色 189 252 201 #BDFCC9
象牙白 250 255 240 #FAFFF0 巧克力色 210 105 30 #D2691E 草綠色 107 142 35 #6B8E23
亞麻色 250 240 230 #FAF0E6 肉色 255 125 64 #FF7D40 暗綠色 48 128 20 #308014
navajoWhite 255 222 173 #FFDEAD 黃褐色 240 230 140 #F0E68C 海綠色 46 139 87 #2E8B57
old lace 253 245 230 #FDF5E6 玫瑰紅 188 143 143 #BC8F8F 嫩綠色 0 255 127 #00FF7F
海貝殼色 255 245 238 #FFF5EE 肖貢土色 199 97 20 #C76114
雪白 255 250 250 #FFFAFA 標土棕 115 74 18 #734A12 紫色 160 32 240 #A020F0
烏賊墨棕 94 38 18 #5E2612 紫羅藍色 138 43 226 #8A2BE2
紅色 255 0 0 #FF0000 赫色 160 82 45 #A0522D jasoa 160 102 211 #A066D3
磚紅 156 102 31 #9C661F 馬棕色 139 69 19 #8B4513 湖紫色 153 51 250 #9933FA
鎘紅 227 23 13 #E3170D 沙棕色 244 164 96 #F4A460 淡紫色 218 112 214 #DA70D6
珊瑚色 255 127 80 #FF7F50 棕褐色 210 180 140 #D2B48C 梅紅色 221 160 221 #DDA0DD
耐火磚紅 178 34 34 #B22222
印度紅 176 23 31 #B0171F 藍色 0 0 255 #0000FF
栗色 176 48 96 #B03060 鈷色 61 89 171 #3D59AB
粉紅 255 192 203 #FFC0CB dodger blue 30 144 255 #1E90FF
草莓色 135 38 87 #872657 jackie blue 11 23 70 #0B1746
橙紅色 250 128 114 #FA8072 錳藍 3 168 158 #03A89E
蕃茄紅 255 99 71 #FF6347 深藍色 25 25 112 #191970
桔紅 255 69 0 #FF4500 孔雀藍 51 161 201 #33A1C9
深紅色 255 0 255 #FF00FF 土耳其玉色 0 199 140 #00C78C