canvas教程

Canvas基本的基本使用

字号+ 作者:H5之家 来源:H5之家 2017-07-14 18:03 我要评论( )

Canvas基本的基本使用


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,缩放

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Canvas Canvas绘制图片模糊

    Canvas Canvas绘制图片模糊

    2017-07-15 08:00

  • Android canvas drawBitmap方法详解及实例

    Android canvas drawBitmap方法详解及实例

    2017-07-14 17:00

  • Java 双缓冲技术消除图片闪动

    Java 双缓冲技术消除图片闪动

    2017-07-14 13:07

  • 布局介绍与Canvas(一)

    布局介绍与Canvas(一)

    2017-07-13 12:03

网友点评
e