2024年3月27日发(作者:)

Andriod绘制图形

cs包是核心渲染包,它提供了一些初级图形工具,诸如画布、颜色过滤

器、画笔等,可以让你直接在屏幕上进行图像处理。这个包中提供了很多类,下面我们就看

一下这个包中主要的几个类。

一、Canvas类

Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。一般我们用

android来绘画的时候,需要四个组成部分:

1、位图:包含像素

2、Canvas画板:包含绘画内容,写入位图

3、初始图形:如Rect、Bitmap、text等

4、Paint:用来描述上面初始图形的颜色和类型等

Canvas类提供了三个构造方法:

Public Canvas();构造一个默认无参的Canvas对象

Public Canvas(Bitmap bitmap);根据一个Bitmap构造一个Canvas对象

Public Canvas(GL gl);根据一个GL来构造一个对象

下面我们来了解一下Canvas类提供的方法:

在Canvas类提供的方法中比较多经常用的是以draw开头的方法,draw开头的方法很

容易理解就是向画板中画图形,比如可以向Canvas中画位图,给图形填充颜色等。

比如方法:

drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint

paint)画弧形

drawCircle(float cx, float cy, float radius, Paint paint)画圆形

Canvas类提供的方法比较多,在此我们不一一赘述,在后面的内容中,我将给大家举

几个实际的应用程序例子来演示Canvas类的使用方法。

二、Paint类

Paint类包含有用来画几何图形、文本、位图的类型和颜色等信息,如果把Canvas类

看作是画板,那我们可以把Paint类看做是画笔,可以根据需要画出不同颜色和样式的图形、

文本等内容。

Paint类有三个构造方法:

Public Paint()构造一个缺省的Paint对象

Public Paint(int flags);根据指定的flags来构造一个Paint对象,创建之后可以用

setFlags()方法来更改

Public Paint(Paint paint)根据指定的paint对象来构造一个Paint对象

Paint类提供了很多方法来设置和获取Paint对象的属性,比如:

public int getColor ()获得Paint对象的颜色值

public ColorFilter getColorFilter ()获得颜色过滤器

public float getTextSize ()获得字体大小数值

public void setStyle ( style)设置paint的类型

三Color类

此类定义了一些方法来创建和转换颜色值。颜色被表示为封装的数值,这个数值由四个

字节组成,分别是:alpha、red、green、blue,这些值是非自左乘的,也就是说任何透明

性只存储在alpha部分,而不是在颜色组成部分。每一部分按照如下的顺序保存:

(alpha<<24)|(red<<16)|

这部分不起作用,255表示100%的起作用。因此不透明的黑色应该是0xFF000000,不透明

的白色应该是0xFFFFFFFF 。

Color类提供了12个常量值来代表不同的颜色值,我们在开发工程中可以直接调用这些常

量值来设置我们所要修饰的文本、图形等对象。

Color类提供了一个无参的构造方法Color()

Color类提供了一些方法来进行颜色值的创建和转换如下:

其中三个方法是用来返回一个颜色常量值的红绿蓝分色,数值分别在0-255之间,如下:

Public static red(int color);

Public static green(int color);

Public static blue(int color);

其中Public static int rgb(int red,int green,int blue);输入红绿蓝三色,返回一个RGB颜色值。

下面几个方法大家可以参考Android API来了解:

Public static int HSVToColor(int alpha,float[] hsv);

Public static int HSVToColor(float[] hsv);

Public static void RGBToHSV(int red,int green,int blue,float[] hsv);

Public static int alpha(int color);

Public static int argb(int alpha,int red,int green,int blue);

Public static colorToHSV(int color,float[] hsv);

Public static parseColor(String colorString);

四.Typeface类ce