Android中2D绘图工具类(Canvas,Paint和Color)简介

fydxdk 9年前

  通常的Android应用开发中都要图片,找美工设计些图片,放到项目中就可以了,不过除了使用现有的图片外,我们也可以用2D绘图,就是在View画一些图案或文字。其中通常要用到的类有Canvas(画布),Paint(画笔)及Color(用来设置画笔颜色)类,当然还可能用到其它很多类,都是根据自己项目中的需要来定的。

   Canvas:画布,用来直接在View上绘制诸如矩形,圆形,文字,位图等图形。官方api网址:http://developer.android.com/reference/android/graphics/Canvas.html。Canvas可以绘制的对象有:弧线(arcs)、填充颜色(argb和color)、 Bitmap、圆(circle和oval)、点(point)、线(line)、矩形(Rect)、图片(Picture)、圆角矩形 (RoundRect)、文本(text)、顶点(Vertices)、路径(path)。另外还常用的两个方法是:

save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。saverestore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多,会引发Error

Paint:画笔,作用于画布上,用来设置我们绘制图案的一些参数,如线条宽度(粗细),颜色等。常用的设置有:

setetAntiAlias: 设置画笔的锯齿效果。 

setColor: 设置颜色 

setARGB:  设置的ARGB色彩值。 

setAlpha:  设置Alpha值 

setTextSize: 设置字体尺寸。 

setStyle:  设置画笔风格,空心或者实心。 

setStrokeWidth: 设置空心的边框宽度。 

setShader:设置阴影效果

setTextSkewX:设置文字倾斜度

Color:颜色类,主要是提供画笔的颜色等。可以定义在res/values/colors.xml中,也可以直接用系统提供的颜色值,更可通知Color.parseColor()来设置颜色。常用的系统颜色值如:

Color.BLACK;
Color.WHITE;
Color.BLUE;
Color.RED;
Color.YELLOW......

下面就一小例子:

public class MyDrawView extends View {
public MyDrawView (Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.BLUE);
canvas.drawText("画圆:", 10, 20, p);
p.setColor(Color.YELLOW);
canvas.drawLine(60, 40, 100, 40, p);// 画线
p.setStyle(Paint.Style.FILL);
canvas.drawText("画点:", 10, 360, p);
canvas.drawPoint(60, 390, p);//画一个点
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);//画一贴图
canvas.drawBitmap(bitmap, 250,360, p);
}
}</span></span>