я пытаюсь нарисовать следующее: Но со знаком плюс вместо минуса в центре стрелки.
Я хочу вычесть «минус» из белой базовой формы. Как ни странно, это отлично работает для минуса, но если я нарисую вместо этого знак плюса, он больше не вычитает его, а добавляет к основному пути.
Мой код для вычитания минуса выглядит так
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.