欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Graphics2D API:Color类、Android中的颜色

程序员文章站 2024-03-18 14:59:22
...

一、颜色介绍

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 中定义我们的颜色值:

<?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中定义颜色有以下几种方式:

定义颜色以#开头,后面跟十六进制的值

#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);