View系列:View绘制:Draw绘制

总结 

  1: View 的绘制步骤 :view.draw()

绘制backGround() ----》onDraw ()  ----》dispatchDraw() ---->drawChild ---->View.draw()

2:  一般我们重写 onDraw() 函数 来绘制具体的内容

3: LinearLayout 函数-----》重写了 onDraw() 函数,来绘制分割线

4: 常见的 绘制图形以及相关的类 

   RectF 这个类包含一个矩形的四个单精度浮点坐标。矩形通过上下左右4个边的坐标来表示一个矩形

   Canvas :Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像

   Paint类包含有用来画几何图形、文本、位图的类型和颜色等信息,如果把Canvas类看作是画板,那我们可以把Paint类看做是画笔,可以根据需要画出不同颜色和样式的图形、文本等内容

   Color: 此类 定义了一些方法来创建和转换颜色值。颜色被表示为封装的数值,这个数值由四个字节组成,分别是:alpha、red、green、blue

 Typeface: 类定义字体和字体内在的类型。这个类被用在画笔Paint设置的时候, ypeface 提供了一些常量值来表示自身的一些属性,比如BOLD,BOLD_ITALIC,ITALIC等

  Path:类(一组区域)的描画,类囊括多种几何图形比如直线线段、二次曲线、三次曲线等,
调用Canvas.drawPath()方法可以将Path以所定义的paint的方式来画到画板上或者填出图形

  5: onDraw() 实例

   绘制直线或者曲线-----canvas.drawPath() 参数path封装了多个点的坐标,这些点的坐标是绝对坐标,通过RectF的top 或者right属性得到x和y坐标

   绘制饼状图:------》canvas.drawCircle 需要x y 中心点和半径来绘制,

  绘制扇形 ----》 canvas.drawArc()  需要开始角度和扫过的面积

6: 贝塞尔曲线 :刷礼物;水滴动画;翻书效果;天气预报曲线图等;

  贝塞尔曲线是用一系列点来控制曲线状态,这些点分别是起点,终点和控制点,贝塞尔曲线可以简单理解为小球从起点出发,  在外力(控制点)的作用下做曲线运动。

   mPath.moveTo 移动到操作起始点坐标,不会进行绘制,只用于移动移动画笔
mPath.lineTo 从一个点连线到另一个点,用于进行直线绘制
mPath.quadTo(x1, y1, x2, y2)生成二次贝塞尔曲线,(x1,y1) 为控制点(x2,y2)为结束点
mPath.cubicTo(x1, y1, x2, y2, x3, y3)生成三次贝塞尔曲线, (x1,y1) 为控制点,(x2,y2)为控制点,(x3,y3) 为结束点;即与二阶区别多一个控制点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值