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
调用。我遇到了相同的问题。你能解决它吗?