首页 » Android » Android 自定义view画布API:canvas

Android 自定义view画布API:canvas

 
文章目录

canvas在Android自定义View中是一个非常重要的角色。

canvas介绍

假如你想要绘制自己想要的动画,控件效果,canvas是最适合不过的了。

可以看看canvas内部有些什么属性,掌握这些属性,就可以动手绘制出我们自己想要的控件效果了。

//画布颜色
canvas.drawColor()
//矩形绘制
canvas.drawRect(0,0,200,200,paint);
//画文字
canvas.drawText("文字",50, 50, paint);
//绘制图片
canvas.drawBitmap();
//绘制圆
drawCircle(200, 200, 100, paint);  
//弧形绘制
canvas.drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint);
//画线
canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
//贝塞尔曲线
paint.setStyle(Style.STROKE);  
Path path2 = new Path();    
path2.moveTo(100, 100);//设置Path的起点   /** 
 * 参数1、2:x1,y1为控制点的坐标值 
 * 参数3、4:x2,y2为终点的坐标值 
 */  path2.quadTo(300, 100, 400, 400); 
//设置贝塞尔曲线的控制点坐标和终点坐标
path2.quadTo(500, 700, 800, 800);  
//画出贝塞尔曲线
canvas.drawPath(path2, p);
//画点
canvas.drawPoint(float x, float y, Paint paint)

canvas操作类里面不止上面这些方法,具体可以查看Android的官方文档:https://developer.android.com/reference/android/graphics/Canvas.html(梯子自备)

blob.png

canvas除了绘制图形外,还有一些操作方法:

Canvas平移

/** 
 * 画布向(200,30)方向平移 
 *  
 * parms1:向X轴方向移动200距离 
 * parms2: 向Y轴方向移动30距离   
 */
 canvas.translate(200, 30);

Canvas缩放

/*
*以x轴200y轴200为中心,x轴放大2倍,y轴放大3位
*/
canvas.scale(2, 3,200,200);

blob.png

Canvas旋转

//以0.0点为中心顺时针旋转30度
canvas.rotate(30);
//以x轴200y轴200为中心,顺时针旋转30度
canvas.rotate(30,200,200);

blob.png

Canvas保存与恢复状态

//在进行canvas平移、旋转、缩放等操作之前,可以把canvas的Matrix保存下来,这样就不会影响坐标系的改变。
//save方法内部保存的是坐标系的原点(0,0),及坐标系的方向信息。
canvas.save()
//恢复到save之前的坐标系。
canvas.restore()

原文链接:Android 自定义view画布API:canvas,转载请注明来源!

0