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方法绘制出来的图如附图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值