gpt4 book ai didi

android - 使用 android.graphics.Path 从另一个形状中删除一个形状

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:51 25 4
gpt4 key购买 nike

我要绘制的内容如下:Screenshot但是在箭头的中心使用加号而不是减号。

我想从白色基础形状中减去“减号”。奇怪的是,这对减号来说效果很好,但如果我画一个加号,它就不会再减去它,而是将它添加到基础路径中。

我的减号代码如下所示

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 中找不到任何帮助。

最佳答案

也许这会对某人有所帮助:我必须将 base 的 fillType 设置为 EVEN_ODD

base.setFillType(FillType.EVEN_ODD);

关于android - 使用 android.graphics.Path 从另一个形状中删除一个形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com