我可以用this问题提供的代码绘制水平虚线。

这是宽度为1dp且高度为fill-parent的视图的背景。但是,如果我尝试绘制更改视图宽度和高度的垂直线,则不会出现垂直虚线。

最佳答案

编辑...更好的是,创建一条路径并绘制该路径。

Paint paintDots = new Paint();
paintDots.setStyle(Paint.Style.STROKE);
PathEffect pe = new DashPathEffect(new float[] {5, 20}, 0);
paintDots.setPathEffect(pe);
paintDots.setStrokeWidth(5);

Path p = new Path();
p.moveTo(100, 0);
p.lineTo(100, 200);
canvas.drawPath(p, paintDots);


当然有比这更好的方法,但是我只是制作了一个宽度为0的矩形。这种方法有局限性。如果“矩形”的侧面发生冲突,我建议增大路径效果中的间隙。

Paint paintDots = new Paint();
paintDots.setStyle(Paint.Style.STROKE);
PathEffect pe = new DashPathEffect(new float[] {5, 20}, 0);
paintDots.setPathEffect(pe);
paintDots.setStrokeWidth(5);

canvas.drawRect(new Rect(100,0,100,200), paintDots);

08-18 19:12