Android canvas画线模糊问题

在Android中,canvas绘制线段时可能会遇到线宽不准确的问题,特别是线宽为1时。这是因为canvas在绘制时会尝试在坐标两侧各绘制一半的线宽,导致实际线宽比预期宽。解决办法是根据线宽的奇偶性调整线段的中轴线位置,以获得精确的像素值。当线宽为奇数时,以n.5为中轴线,偶数时以n.0为中轴线。
摘要由CSDN通过智能技术生成

1.现象
在canvas中,我们经常需要绘制线段,主要使用moveTo和lineTo两个方法,moveTo移动至线段起始点,lineTo将线段绘制至终点。同时,绘制线段时可以指定线段的宽度,使用lineWidth属性,lineWidth默认为1,必须大于0。

moveTo(x, y): 移动至坐标x,y
lineTo(x, y): 线段终点坐标x,y

简单绘制代码如下:
Paint paint = new Paint();
paint.setColor(Color.parseColor("#ff000000));
paint.setStrokeWidth(2);

Path path = new Path();
path.moveTo(0,50);
path.lineTo(50,50);
canvas.drawPath(path,paint);
在这里插入图片描述
Done, 绘制出了一条线宽为2的线段,就这么简单
那我们再绘制一条线宽为1的线段,只需要修改:
paint.setStrokeWidth(1);
在这里插入图片描述
怎么跟线宽2的宽度是一样的,宽度也是2,只是颜色稍浅。

那我们换个思路,刚才绘制的Y轴坐标为50,我们改成50.5呢,分别再绘制两条线宽分别是2和1的线段:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值