自定义view的一些方法和参数介绍之第一期path和canvas

来源:互联网 发布:做网络监控用几类线 编辑:程序博客网 时间:2024/06/07 10:04

canvas家族

//设置画板的填充色(一般为整个view) canvas.drawColor(Color.YELLOW);//画圆前俩个参数为圆心的X坐标,圆心的Y坐标,第三个参数为半径//依据的坐标系原点为view的左上角初始点作为原点(图一) canvas.drawCircle(cx, cy, r, mPaint);

图一
图一
橘色背景范围为整个view,左上角为坐标原点

//画矩形,前面4个参数为左上右下离view的距离(图二)canvas.drawRect(float left, float top, float right, float bottom, Paint paint) 

这里写图片描述
红色框框为view的范围,中间黑色框为矩形

//画点前面俩个参数为要画的点得位置坐标canvas.drawPoint(float x, float y, @NonNull Paint paint)//画椭圆前面4个参数可以确定一个矩形的位置,然后根据这个矩形画一个内切的圆在里面canvas.drawOval(float left, float top, float right, float bottom, @NonNull Paint paint)//画线 前面4个参数为,起始点得x,y坐标,结束点的x,y坐标,然后俩点练成一条线 canvas.drawLine(float startX, float startY, float stopX, float stopY,            @NonNull Paint paint)//画圆角的矩形,前面4个参数为矩形,然后俩个参数为圆角的角度rx,rycanvas.drawRoundRect(float left, float top, float right, float bottom, float rx, float ry,Paint paint)//画扇形或者弧形 具体介绍看下面的链接canvas.drawArc(float left, float top, float right, float bottom, float startAngle,            float sweepAngle, boolean useCenter, @NonNull Paint paint)

http://blog.csdn.net/qq_15527709/article/details/78344809 drawArc方法介绍

    // 绘制出 path 描述的图形 path在下面讲解 canvas.drawPath(path, paint);  canvas.drawBitmap(Bitmap bitmap, float left, float top, Paint paint) 画 Bitmap canvas.drawText(String text, float x, float y, Paint paint) 绘制文字

path家族

path.lineTo(float x, float y) / rLineTo(float x, float y) 画直线path.moveTo(float x, float y) / rMoveTo(float x, float y) 移动到目标位置path.addCircle(float x, float y, float radius, Direction dir) 添加圆path.addOval(float left, float top, float right, float bottom, Direction dir) / addOval(RectF oval, Direction dir) 添加椭圆path.addRect(float left, float top, float right, float bottom, Direction dir) / addRect(RectF rect, Direction dir) 添加矩形----------------------------添加圆角矩形的构造方法path.addRoundRect(RectF rect, float rx, float ry, Direction dir) path.addRoundRect(float left, float top, float right, float bottom, float rx, float ry, Direction dir) path.addRoundRect(RectF rect, float[] radii, Direction dir) path.addRoundRect(float left, float top, float right, float bottom, float[] radii, Direction dir) ----------------------------path.addPath(Path path) 添加另一个 Path------------------------画二次贝塞尔曲线的构造方法path.quadTo(float x1, float y1, float x2, float y2) path.rQuadTo(float dx1, float dy1, float dx2, float dy2) -------------------------------------------------------画三次贝塞尔曲线的构造方法path.cubicTo(float x1, float y1, float x2, float y2, float x3, float y3) path.rCubicTo(float x1, float y1, float x2, float y2, float x3, float y3) -------------------------------------------------- 画弧形的构造方法path.arcTo(RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo) path.arcTo(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean forceMoveTo) path.arcTo(RectF oval, float startAngle, float sweepAngle)path.addArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle) path.addArc(RectF oval, float startAngle, float sweepAngle)---------------------path.close() 封闭当前子图形Path.setFillType(Path.FillType ft) 设置填充方式
阅读全文
0 0
原创粉丝点击