Canvas类

0、相关文章

Canvas类的最全面详解 - 自定义View应用系列(阅读量1.5w,点赞27)

Android Canvas DrawLines中第一个参数的解释(1参考此文所写)

1、Canvas.drawLines(float[] pts, Paint paint)

在看一个控件,调用到了Canvas.drawLines(float[] pts, Paint paint) 方法,

我看到代码里用循环把pts数组四个四个地灌,我就觉得莫名其妙,为什么啊,查了资料发现原来是这么回事:

pts的长度必须为4的倍数,四个四个归成一组。

1.1、画一个矩形或者三角形:

@Override
    protected void onDraw(Canvas canvas) {
        mPaint.setStyle(Paint.Style.FILL);
        mPaint.setColor(Color.BLACK);
        mPaint.setStrokeWidth(5);

        float[] pts4 = {//矩形
                100, 100, 1200, 100,
                1200, 100, 1200, 1200,
                1200, 1200, 100, 1200,
                100, 1200, 100, 100
        };

        float[] pts5 = {//三角形
                600, 100, 1200, 1200,
                1200, 1200, 100, 1200,
                100, 1200, 600, 100
        };

        canvas.drawLines(pts5, mPaint);
    }

我们以矩形为例进行说明:

float[] pts4 = {
                100, 100, 1200, 100,
                1200, 100, 1200, 1200,
                1200, 1200, 100, 1200,
                100, 1200, 100, 100
        };

那我们取前四个 pts[0], pts[1], pts[2], pts[3]:

100,100, 1200, 100:前两个表示的是直线起点的横纵坐标,后两个表示的是直线终点的横纵坐标,表示的坐标(100,100)到坐标坐标(1200,100)的直线

1200, 100, 1200, 1200:坐标(1200,100)到坐标(1200,1200)的直线

以此类推,刚好是个矩形。

也就是说,利用这个pts调用drawLines方法绘制出来的图如附图:

Canvas类_第1张图片

你可能感兴趣的:(Andorid:自定义View)