一、顏色介紹
1、Android中的顏色模式
| 顏色模式 | 介紹 |
|---|---|
| ARGB_8888 | 四通道(32bits) |
| ARGB_4444 | 四通道(16bits) |
| Alpha_8 | 僅有透明通道(8bits) |
| RGB_565 | R通道為5位,G通道6位,B通道5位(16bits) ,沒有透明度 |
字母表示通道類型:Alpha(透明度)、R(紅)、G(綠)、B(藍(lán))
數(shù)值表示該類型用多少位二進(jìn)制來描述:如ARGB_8888表示每個通道占用8個二進(jìn)制位(8bits)
2、A、R、G、B取值范圍
A、R、G、B的取值范圍均為0到255,也就是16進(jìn)制的0x00~0xff
A 從0x00到0xff表示從透明到不透明
R、G、B從0x00到0xff表示顏色從淺到深
二、顏色的定義與使用
1、Color類
在原生的android.graphics包下,有一個顏色類:Color,在這個類中,定義了一些顏色值的成員變量,我們可以直接使用這些顏色值:
public class Color {
public static final int BLACK = 0xFF000000;
public static final int DKGRAY = 0xFF444444;
public static final int GRAY = 0xFF888888;
public static final int LTGRAY = 0xFFCCCCCC;
public static final int WHITE = 0xFFFFFFFF;
public static final int RED = 0xFFFF0000;
public static final int GREEN = 0xFF00FF00;
public static final int BLUE = 0xFF0000FF;
public static final int YELLOW = 0xFFFFFF00;
public static final int CYAN = 0xFF00FFFF;
public static final int MAGENTA = 0xFFFF00FF;
public static final int TRANSPARENT = 0;
......
}
2、自己定義顏色并使用
Color 類中定義的顏色有限,肯定滿足不了我們的需求,所以就需要我們自己定義顏色值了.
1) xml中定義顏色
在res/values/colors.xml 中定義我們的顏色值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#ff0000</color>
<color name="green">#00ff00</color>
<color name="blue">#0000ff</color>
</resources>
xml中定義顏色有以下幾種方式:
定義顏色以#開頭,后面跟十六進(jìn)制的值
#f00 //低精度 - 不帶透明通道
#af00 //低精度 - 帶透明通道
#ff0000 //高精度 - 不帶透明通道
#aaff0000 //高精度 - 帶透明通道
使用:
例:給TextView的字體設(shè)置顏色
xml中使用:
android:textColor="@color/blue"
java代碼中使用:
setTextColor(Context.getResources().getColor(R.color.blue));
在布局文件中直接使用顏色值也是可以的:android:textColor="#0000ff"
2) java代碼中定義顏色
直接在代碼中使用int類型顏色值:
int blue = 0xff0000ff;
TextView.setTextColor(blue);
利用Color的靜態(tài)方法:parseColor()解析一個顏色值字符串
TextView.setTextColor(Color.parseColor("#ff0000ff"));
如果你知道ARGB的取值,那么可以使用Color類的靜態(tài)方法rgb()、argb()創(chuàng)建一個顏色值:
int blue = Color.argb(255,0,0,255);
TextView.setTextColor(blue);