Android_Canvas画布总结

2019-10-28  本文已影响0人  书虫大王X
简介

在自定义 View的时候,我们经常需要绘制一些自己想要的效果。
这时就需要使用Canvas对象。canvas可以理解为一个画布,用于乘载自定义的控件。
下面将Canvas对象常用方法做个笔记,方便记忆。

一、Canvas常用方法:

1.canvas一般是onDraw方法默认提供的,在不对canvas进设置的前提下,canvas一般是与所在的视图大小相等。
2.对canvas进行设置:

 canvas.translate(100, 50);
/** 
 * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍  
 */
canvas.scale(2, 4);
/** 
 * 以(100,100)为中心,旋转30度,顺时针方向为正方向 
 */
canvas.rotate(30,100,100);
canvas.save();

3.用canvas画图形:

/**
 * 参数1:圆心X 
 * 参数2:圆心Y 
 * 参数3:半径R 
 * 参数4:画笔对象 
 */           
canvas.drawCircle(200, 200, 100, p); 
/* 
 * 参数1:startX 
 * 参数2:startY 
 * 参数3:stopX 
 * 参数4:stopY 
 * 参数5:画笔对象 
 */   
canvas.drawLine(100, 100, 300, 300, p);
/* 
 * 同时绘制多条线。 
 * 参数1:float数组:每四个一组为一条线。最后不足四个,就忽略那些值。 
 * 参数2:画笔对象 
 */  
canvas.drawLines(new float[]{100,100,200,200,200,100,300,100}, p);  
/* 
 *  参数1:椭圆左边到视图左边框的距离
 *  参数2:椭圆上边到视图上边框的距离
 *  参数3:椭圆右边到视图左边框的距离 
 *  参数4:椭圆下边到视图上边框的距离 
 */  
RectF oval = new RectF(150, 200, 500, 400);// 画一个椭圆  
canvas.drawOval(oval, p);  
)// 绘制圆
//参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象
drawCircle(float cx, float cy, float radius,Paint paint);
/** 
 * 参数与上面画椭圆的一样
 */  
canvas.drawRect(100,100, 200, 200, p);  
    
//画圆角矩形    
RectF oval3 = new RectF(80, 260, 200, 300);// 设置个新的长方形    
canvas.drawRoundRect(oval3, 20, 5, p);//第二个参数是x半径,第三个参数是y半径 
/** 
 * 参数1、2:点的x、y坐标 
 */  
canvas.drawPoint(60, 390, p);//画一个点    
/** 
 * 参数1:多个点,每两个值为一个点。最后个数不够两个的值,忽略。 
 */  
canvas.drawPoints(new float[]{60,400,65,400,70,400}, p);//画多个点 
/** 
 * 参数2:文本的x轴的开始位置 
 * 参数2:文本Y轴的结束位置 
 * 参数3:画笔对象 
 */  
canvas.drawText("开始写字了!",50, 50, p);// 画文本  
/** 
 * 参数2:路径 
 * 参数3:距离路径开始位置的偏移量 
 * 参数4:距离路径上下的偏移量(可以为负数) 
 * 参数5:画笔对象 
 */  
canvas.drawTextOnPath("1234567890101123123", path, 0, -50, p);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.图片名);   
/** 
 * 参数1:bitmap图片对象 
 * 参数2:图像左边坐标点 
 * 参数3:图像上边坐标点 
 */  
canvas.drawBitmap(bitmap, 200,300, p); 

4.虽然canvas可以用来画一些图形,但常用的方法还是drawPath方法,用来画path路径。
5.canvas一般与pathpaint结合使用。
6、实战:画板实例

上一篇 下一篇

猜你喜欢

热点阅读