美文网首页
Android_Canvas画布总结

Android_Canvas画布总结

作者: 书虫大王X | 来源:发表于2019-10-28 22:16 被阅读0次
简介

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

一、Canvas常用方法:

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

  • 移动canvas:
 canvas.translate(100, 50);
  • 缩放canvas:
/** 
 * 在X轴方向放大为原来2倍,Y轴方向方大为原来的4倍  
 */
canvas.scale(2, 4);
  • 旋转canvas:
/** 
 * 以(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、实战:画板实例

相关文章

  • Android_Canvas画布总结

    简介 在自定义 View的时候,我们经常需要绘制一些自己想要的效果。这时就需要使用Canvas对象。canvas可...

  • 刘润商学院日课总结11.24

    今日总结:商业模式画布 商业模式画布分四个视角和九个模块。首先我们应该明确四个四角“为谁提供,提供什么,如何提供,...

  • 商业画布-价值设计画布-画布

  • 15.图形交互界面之Tkinter-Canvas画布

    画布 画布之列表 画布之长方形及线 画布之椭圆字幕butten组件 画布之五角星 修改参数center_x =20...

  • 听兴远咨询讲 商业画布

    商业画布效能的影响因素~ 商业画布案例~ 商业画布的使用场景~

  • 如何用ZB生成高度图(Height Map)

    一、输出Height Map尺寸设置 二、调整画布大小 重置画布尺寸后需要重新调整画布显示。 1、缩放画布 2、调...

  • 立创EDA学习笔记(5)——PCB设计

    一、画布设置 1.1 画布属性 PCB画布属性和原理图画布属性大部分一致。点击PCB空白处在右边面板可以修改画布的...

  • 画布

    需要条件:要开启php.ini中的php.gd2 创建画布imagecreatetruecolor()w 宽度 ...

  • 画布

    生活是一张画布 命运泼一把颜料 时间持一把刮刀 幸运的是 多数情况下笔在我们手里

  • 画布

    清晨 借着尖刃 剔除昨夜死去的哀嚎 随后放入洁净的蒸笼 待盲人抵达后 将它细细嚼碎 午时 人流窜动的街旁 躺着修长...

网友评论

      本文标题:Android_Canvas画布总结

      本文链接:https://www.haomeiwen.com/subject/kqsivctx.html