Java 当“绘制”设置为“填充”时,canvas.drawPath不绘制任何内容?

Java 当“绘制”设置为“填充”时,canvas.drawPath不绘制任何内容?,java,android,android-canvas,Java,Android,Android Canvas,我试图使用drawPath()在画布上绘制三角形,但填充三角形时遇到问题。如果将绘制设置为笔划,下面的代码将绘制一个三角形,但当设置为填充时,它不会绘制任何内容。我有什么地方做错了吗 labelArrowBox.reset(); labelArrowBox.moveTo(labelPosition.x, labelPosition.y); float x = labelPosition.x + LABEL_BOX_ARROW_WIDTH / 2; float

我试图使用
drawPath()
在画布上绘制三角形,但填充三角形时遇到问题。如果将绘制设置为
笔划
,下面的代码将绘制一个三角形,但当设置为
填充
时,它不会绘制任何内容。我有什么地方做错了吗

    labelArrowBox.reset();

    labelArrowBox.moveTo(labelPosition.x, labelPosition.y);

    float x = labelPosition.x + LABEL_BOX_ARROW_WIDTH / 2;
    float y = labelPosition.y - LABEL_BOX_ARROW_HEIGHT;
    labelArrowBox.lineTo(x, y);
    labelArrowBox.moveTo(x, y);

    x = labelPosition.x - LABEL_BOX_ARROW_WIDTH / 2;
    labelArrowBox.lineTo(x, y);
    labelArrowBox.moveTo(x, y);

    labelArrowBox.lineTo(labelPosition.x, labelPosition.y);
    labelArrowBox.moveTo(labelPosition.x, labelPosition.y);

    labelArrowBox.close();

    Paint arrowBorderPaint = new Paint();
    arrowBorderPaint.setAntiAlias(true);
    arrowBorderPaint.setDither(true);
    arrowBorderPaint.setColor(getContext().getResources().getColor(R.color.leaf_thin_ring));
    arrowBorderPaint.setStyle(Paint.Style.FILL);

    canvas.drawPath(labelArrowBox, arrowBorderPaint);

我找到了解决办法。删除
moveTo()
您只需要
lineTo()
您不应该需要这些行:
labelArrowBox.moveTo(x,y)

代码看起来正常。您确定从资源加载的颜色是不透明的吗?另外,作为一种优化,如果调用
close()
,我想您不必
lineTo()
三角形的第三条线。建议您首先使用带有硬编码坐标和颜色的最小代码进行操作。然后增加其他复杂性。如果问题仍然存在,请尝试删除除第一个调用之外的所有
moveTo
调用。我遇到了相同的问题。你能解决它吗?