Canvas基本的基本使用
Canvas基本的基本使用
最咸的咸鱼 发表于10个月前
Canvas基本的基本使用
  • 发表于 10个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

1.1. Canvas绘制基本图形

①绘制线,矩形,圆角矩形,圆形,环形,弧形等

相关api:

Paint(画笔)相关api:
//给Paint设置颜色

paint.setColor(Color.RED);
//用此Paint绘制出的图形没有锯齿,但会损耗性能

paint.setAntiAlias(true);
//设置Paint样式(不填充),如:绘制一个空心圆,则设置如下样式

paint.setStyle(Paint.Style.STROKE);

//定义一个点,包含x和y坐标

PointF point= new PointF(x, y);

//绘制一个圆

参数1,2:圆心坐标

//参数3:半径

//参数4:画笔

canvas.drawCircle(x, y, radius, paint);

//绘制直线

//参数1,2:起点的x,y坐标

//参数3,4:起点的x,y坐标

canvas.drawLine(x1, y1,x2,y2, paint);

//定义一个矩形

//参数1:矩形的左边相对于屏幕左边缘的距离

//参数2:矩形的上边相对于屏幕上边缘的距离

//参数3:矩形的右边相对于屏幕左边缘的距离

//参数4:矩形的下边相对于屏幕上边缘的距离

RectF rect= new RectF(l, t, r, b);

//绘制弧形

//参数1:绘制弧形依赖的矩形,绘制出的弧形会与此矩形内切

//参数2:弧形的起始角度

//参数3:弧形的弧度

canvas.drawArc(rect, startAngle,sweepAngle
, false, paint);
//绘制一个矩形

canvas.drawRect(rect,paint);

//绘制一个点

//参数1,2:绘制的点的x,y坐标

canvas.drawPoint(x,y,paint);

//绘制多个点的x,y坐标

float[] pts = {x1, y1, x2, y2, x3,y3...};

//参数2:从pts集合中的哪个元素开始绘制(从哪里开始,哪里就作为x坐标,后面是y坐标,依此类推)

//参数3:包含pts集合中共几个元素
canvas.drawPoints(pts,offset,count,paint);

canvas.drawRoundRect(rectF,30f,30f,paint);

canvas的变换处理:

Android中的坐标系:默认是以屏幕左上角为原点,x方向向右为+,y方向向下为正

绘制界面是基于坐标系绘制的

若调用了canvas的translate或rotate方法相当于对坐标系进行了平移和旋转,基于旋转后的坐标系进行绘制工作.

1.2. Path绘制复杂图形

//移动到某个点

path.moveTo(x,y);

//绘制贝塞尔曲线

//贝塞尔曲线包含起始点,结束点和控制点,此api默认以path所在的点为起始点

//参数1,2:控制点的x,y坐标

//参数3,4:结束点的x,y坐标

path.quadTo(controlPointX,controlPointY,endPointX,endPointY);

//绘制一条直线,默认以path所在的点为起始点

path.lineTo(x,y);

//绘制一个弧形

//参数1:弧形内接的矩形

//参数2:弧形的起始角度

//参数3:弧形的弧度

path.arcTo(rectf,startAngle,sweepAngle);

//绘制一个路径

canvas.drawPath(path,paint);

1.3. 绘制文本

//在画布上绘制文本

//参数2,3:绘制文本的基准点的x和y坐标

canvas.drawText(text,x,y,paint);

//设置画笔的颜色

paint.setColor(Color.GREEN);

//设置画笔绘制的文本字体大小
paint.setTextSize(70);

//设置粗体
paint.setFakeBoldText(true);

//设置字体粗细

paint.setStrokeWidth(5);
//设置绘图样式 为填充

paint.setStyle(Paint.Style.FILL);
//设置绘图样式 为描边
paint.setStyle(Paint.Style.STROKE);
//设置绘图样式 为填充且描边
paint.setStyle(Paint.Style.FILL_AND_STROKE);
//绘制文本的基准点(240,400)在文本内容的中间
paint.setTextAlign(Paint.Align.CENTER);
//绘制文本的基准点(240,400)在文本内容的左边
paint.setTextAlign(Paint.Align.LEFT);

//绘制文本的基准点(240,400)在文本内容的右边
paint.setTextAlign(Paint.Align.CENTER);
//设置文本是否有下划线
paint.setUnderlineText(true);
//设置文本是否有删除线
paint.setStrikeThruText(true);

//设置文本的x方向上的缩放
paint.setTextScaleX(2);

1.4. Canvas的其他处理

注:canvas在做下列处理前必须先调用save方法处理后要调用restore方法

1,平移

canvas.translate(100,0);

2,旋转

canvas.rotate(300);

3,缩放

标签: Java Android Canvas
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 3
码字总数 2366
×
最咸的咸鱼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: