我尝试绘制的内容如下:但是在箭头中心加了一个加号而不是一个减号。
我想减去'减去'从白色的基础形状。奇怪的是,对于减号可以正常工作,但是如果我画一个加号而不是它再减去它,而是将它添加到底层路径。
我减去减号的代码看起来像这样
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);
然而,现在它在箭头顶部画了一个白色加号。我试过subtract.setFillType(FillType.INVERSE_EVEN_ODD)
,但它没有改变任何东西。
很遗憾,我无法在api中找到任何帮助。
答案 0 :(得分:6)
也许这会对某人有所帮助:我必须将base的fillType设置为EVEN_ODD
base.setFillType(FillType.EVEN_ODD);