gpt4 book ai didi

安卓 PathDashPathEffect : the path shape does not work for a straight line

转载 作者:太空狗 更新时间:2023-10-29 13:52:54 35 4
gpt4 key购买 nike

我正在尝试构建一个自定义 View ,该 View 绘制一 strip 有斜条纹图案的线。它看起来应该类似于:

enter image description here

我认为使用 PathDashPathEffect 应该可以,但是当我将路径形状设置为直线路径时, View 不会绘制任何内容。如果我向路径添加更多段以便它可以关闭,例如将其设为三角形,则 View 会显示。

这是我的路径形状:

    Path pathShape = new Path();
pathShape.moveTo(0, 10);
pathShape.lineTo(10, 0);

以上不起作用, View 不显示任何内容。下面的工作并将三角形显示为线上的模式:

    Path pathShape = new Path();
pathShape.moveTo(0, 0);
pathShape.lineTo(10, 10);
pathShape.lineTo(10, 0);

我的整个自定义 View :

private final Paint paint;
private final Path path;

public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(20);
paint.setColor(Color.RED);
Path pathShape = new Path();
pathShape.moveTo(0, 0);
pathShape.lineTo(10, 10);
pathShape.lineTo(10, 0);
PathDashPathEffect pathEffect = new PathDashPathEffect(pathShape, 30, 30, PathDashPathEffect.Style.ROTATE);
paint.setPathEffect(pathEffect);
path = new Path();
}

@Override
protected void onDraw(Canvas canvas) {
path.reset();
path.moveTo(0, getHeight() / 2);
path.lineTo(getWidth(), getHeight() / 2);
canvas.drawPath(path, paint);
}

有人知道如何实现吗?

非常感谢!

最佳答案

最终,我通过将 Path 更改为闭合的形状而不是 Path 来实现这一点。我把形状做成一个宽度为 1 的倾斜矩形,这很有效。所以我想吸取了教训:如果 PathEffect 是未关闭的 Path,PathDashPathEffect 将不起作用。

关于安卓 PathDashPathEffect : the path shape does not work for a straight line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43748056/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com