我想画的是:但是在箭头的中心用加号而不是减号。
我想把白色底形减去减号。奇怪的是,这对负号很有用,但是如果我画一个加号,它不再减去它,而是将它添加到底层路径中。
我的减法代码是这样的

Path base = new Path();
[... draw the arrow ]

Path subtract = new Path();
subtract.moveTo(-xBarWidth/2, -xBarHeight/2); // center the path
subtract.rLineTo(xBarWidth, 0);
subtract.rLineTo(0, xBarHeight);
subtract.rLineTo(-xBarWidth, 0);
subtract.rLineTo(0, -xBarHeight);

base.add(subtract);

[in paint() function: canvas.draw(base, paint)]

加号代码:
int halfBarWidth = xBarWidth/2;
subtract.moveTo(-halfBarWidth, -xBarHeight/2);
subtract.rLineTo(halfBarWidth, 0);
subtract.rLineTo(0, halfBarWidth);
subtract.rLineTo(xBarHeight, 0);
subtract.rLineTo(0, -halfBarWidth);
subtract.rLineTo(halfBarWidth, 0);
subtract.rLineTo(0, -xBarHeight);
subtract.rLineTo(-halfBarWidth, 0);
subtract.rLineTo(0, -halfBarWidth);
subtract.rLineTo(-xBarHeight, 0);
subtract.rLineTo(0, halfBarWidth);
subtract.rLineTo(-halfBarWidth, 0);
subtract.rLineTo(0, xBarHeight);

但是,现在它在箭头上方画了一个白色的加号。我试过了,但没有改变什么。
不幸的是,我在api中找不到任何帮助。

最佳答案

也许这对某人有帮助:我必须把底的填充类型设置为偶数

base.setFillType(FillType.EVEN_ODD);

07-27 16:59