Android绘制虚线变为实线,踩坑之旅

1,847 阅读1分钟

问题

先上原来代码中画虚线的代码,原本是没问题的,应用版本升级后测试发现了这个问题

PathEffect effects = new DashPathEffect(new float[]{5, 5}, 1);
mPaint.setPathEffect(effects);
canvas.drawLine(a, b,c, b, mPaint);

绘制出来之后一直都是实线,怎么修改都是这样,一直没有找到解决方案,然后在网上搜索也一直没有找到合适的答案,后来发现了一篇一样问题的博客,参考链接,然后按照同样的方法,将drawLine改为drawPath方法来绘制虚线,Path就是线的两点的坐标,代替drawLine的前四个参数,上代码:

PathEffect effects = new DashPathEffect(new float[]{5, 5}, 1);
mPaint.setPathEffect(effects);
Path path = new Path();
path.moveTo(a, b);
path.lineTo(c, b);
canvas.drawPath(path, mPaint);

这样修改之后重新打包运行,问题就解决了,变成了虚线,不知道从什么时候drawLine开始不支持虚线了,只能使用drawPath来绘制了。 希望能帮助到同样遇到这个坑的。