Canvas与Paint的基本使用

系统通过提供的Canvas对象和Paint对象来提供绘图方法。

Paint方法:

  • setAntiAlias() 设置画笔的锯齿效果
  • setColor() 设置画笔的颜色
  • setARGB() 设置画笔的A,R,G,B值
  • setAlpha() 设置画笔的透明度(0-255,越大越不透明)
  • setTextSize() 设置画笔的字体大小
  • setStyle() 设置画笔的风格(实心或者空心)
  • setStrokeWidth() 设置画笔的空心边框的宽度

Canvas方法:

1
2
//画点
canvas.drawPoint(500,500,mPaint);
1
2
//画线
canvas.drawLine(450,450,700,700,mPaint);
1
2
3
//画多条线
float[] floats = new float[]{20,30,40,50,60,70,80,90};
canvas.drawLines(floats,mPaint);
1
2
//绘制矩形
canvas.drawRect(200,200,300,300,mPaint);
1
2
//绘制圆角矩形
canvas.drawRoundRect(100,100,200,200,10,10,mPaint);
1
2
//画圆形
canvas.drawCircle(250,250,100,mPaint);
1
2
3
4
5
6
7
8
9
10
11
//绘制弧度
float x = (getWidth() - 400)/2;
float y = (getHeight() -400)/2;

RectF rec = new RectF(x, y,x+400,y+400);

canvas.drawArc(rec,360,180,true,mPaint);
canvas.drawRect(rec, mPaint);//画矩形

canvas.drawArc(x,y+400,x+700,y+800,360,180,true,mPaint);
canvas.drawRect(x,y+400,x+700,y+800, mPaint);//画矩形

public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)

  • oval :指定圆弧的外轮廓矩形区域(以这个矩形的中心点为中心点绘制圆弧)。
  • startAngle: 圆弧起始角度,单位为度,以X轴为基准,顺时针方向为正角度方向。
  • sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度,从右中间开始为零度。
  • useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。关键是这个变量
  • paint: 绘制圆弧的画板属性,如颜色,是否填充等。

此处输入图片的描述

1
2
3
4
//绘制文字
mPaint.setStrokeWidth(1);
mPaint.setTextSize(50);
canvas.drawText("Android",100,100,mPaint);

drawText(text, x, y, paint)
y所代表的是基线的位置
此处输入图片的描述

1
2
//连续绘制文字
canvas.drawPosText("And",new float[]{200,200,300,300,400,400},mPaint);

截取“And”,分别进行显示。

1
2
3
4
5
6
7
8
9
 //绘制路径
Path path = new Path();

path.moveTo(100, 100);
path.lineTo(200, 150);
path.lineTo(250, 300);
path.lineTo(400, 900);

canvas.drawPath(path,mPaint);

代码效果图
代码效果图

示例代码:CanvasAndPaint.java

参考链接:

drawArc()参数问题

Android 画圆弧canvas.drawArc() 详解

自定义控件之绘图篇( 五):drawText()详解

Android Canvas 方法总结

canvas变换

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器