一、颜色介绍
1、Android中的颜色模式
颜色模式
介绍
ARGB_8888
四通道(32bits)
ARGB_4444
四通道(16bits)
Alpha_8
仅有透明通道(8bits)
RGB_565
R通道为5位,G通道6位,B通道5位(16bits) ,没有透明度
字母表示通道类型:Alpha(透明度)、R(红)、G(绿)、B(蓝)
数值表示该类型用多少位二进制来描述:如ARGB_8888表示每个通道占用8个二进制位(8bits)
2、A、R、G、B取值范围
A、R、G、B的取值范围均为0到255,也就是16进制的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 中定义我们的颜色值:
#ff0000
#00ff00
#0000ff
xml中定义颜色有以下几种方式:
定义颜色以#开头,后面跟十六进制的值
#f00 //低精度 - 不带透明通道
#af00 //低精度 - 带透明通道
#ff0000 //高精度 - 不带透明通道
#aaff0000 //高精度 - 带透明通道
使用:
例:给TextView的字体设置颜色
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的静态方法:parseColor()解析一个颜色值字符串
TextView.setTextColor(Color.parseColor("#ff0000ff"));
如果你知道ARGB的取值,那么可以使用Color类的静态方法rgb()、argb()创建一个颜色值:
int blue = Color.argb(255,0,0,255);
TextView.setTextColor(blue);