gpt4 book ai didi

java - Androids Canvas.drawPath 是否使用 Canvas 中的裁剪集?

转载 作者:行者123 更新时间:2023-11-29 08:54:19 31 4
gpt4 key购买 nike

在 Android 中,我使用 Canvas.drawPath( Path, Paint ) 来填充路径。我已将 Paint 变量设置为使用 BitmapShader 和要填充的样式。这种方法工作正常,直到我尝试使用额外的剪辑,即我尝试像这样绘制到路径中的子区域

theCanvas.clipRect( visibleRect, Region.Op.REPLACE );
theCanvas.clipRect( additionalClipping, Region.Op.INTERSECT );
theCanvas.drawPath( path, paint );

我想要的结果是在 Paint 的 BitmapShader 中绘制纹理,绘制到与我的路径边缘相交的矩形区域。

但这样做的实际结果是纹理平铺在整个 Path 区域 - 我在 Canvas 上设置的剪裁似乎没有效果。

这几乎就像调用 Canvas.drawPath 在内部调用 Canvas.setClip( Path, Region.Op.Replace ) 一样。

非常感谢任何帮助,谢谢。

最佳答案

对我自己的问题的简短回答是肯定的,Canvas.drawPath 确实使用 Canvas 上的裁剪集以及路径本身的形状,它不会覆盖它。

theCanvas.clipRect(new Rect(632, 269, 1265, 539 ), Region.Op.REPLACE);
theCanvas.drawPath( theNativePath, thePaint );

上面的代码生成了我的路径,用我的纹理绘制,但是在路径的组合区域内和我预先应用到 Canvas 中的剪裁的矩形。我的纹理看起来仍然不对,但问题不在于裁剪,它的行为符合预期。

经过今天早上的进一步调查,我已将问题缩小到我在 Paint 对象中的 BitmapShader 中做错的事情,或者是我提供 BitmapShader 的纹理缓存中的问题。

对于任何混淆,我深表歉意 - 我现在要戴上“笨蛋”的帽子。

关于java - Androids Canvas.drawPath 是否使用 Canvas 中的裁剪集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21145468/

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