android–canvas.clipPath()即使在禁用harware加速后也无法正常工作

android–canvas.clipPath()即使在禁用harware加速后也无法正常工作,第1张

概述我在画布上绘制了一个充满黑色的圆圈,我将画布的背景颜色设置为红色.我只想看到黑色的圆圈作为我的视图,但我也得到了红色.我尝试使用canvas.clipPath()它工作.我在网上搜索,发现我们需要禁用硬件加速才能使其正常工作.我试过了,但它仍然工作.尝试禁用特定视图的硬件加速:view.

我在画布上绘制了一个充满黑色的圆圈,我将画布的背景颜色设置为红色.

我只想看到黑色的圆圈作为我的视图,但我也得到了红色.

我尝试使用canvas.clipPath()它工作.我在网上搜索,发现我们需要禁用硬件加速才能使其正常工作.我试过了,但它仍然工作.

尝试禁用特定视图的硬件加速:

vIEw.setLayerType(VIEw.LAYER_TYPE_SOFTWARE, null);

还有整个应用:

androID:harDWareAccelerated="false"

在这两种情况下都是Dint工作.
有关如何使其工作的任何想法?

码:

在这里,我正在削减

    @OverrIDeprotected voID onDraw(Canvas canvas) {    super.onDraw(canvas);    this.canvas = canvas;    path.reset();    left = 50;    top = 50;    right = getWIDth()- 50;    bottom = getHeight()-50;    RectF rectf = new RectF(left, top, right, bottom);    path.arcTo(rectf, startAngle, sweepAngle);    path.lineto(linex, liney);    canvas.clipPath(path);    canvas.drawPath(path, paint);    //canvas.restore();}

解决方法:

这不是剪辑路径的用途.当您绘制路径然后剪切它时 – 这意味着您将从该点在画布上绘制的其他东西将被路径遮盖.
在你的情况下,你在剪切画布之前绘制一个红色背景 – 所以它遍布画布,然后你剪切它但只在路径内绘制,所以裁剪是无用的.

您可以在该代码中获得所需内容:

// Do not set any background to the vIEw beforeprotected voID onDraw(Canvas canvas) {    super.onDraw(canvas);    this.canvas = canvas;    path.reset();    left = 50;    top = 50;    right = getWIDth()- 50;    bottom = getHeight()-50;    RectF rectf = new RectF(left, top, right, bottom);    path.arcTo(rectf, startAngle, sweepAngle);    path.lineto(linex, liney);    canvas.clipPath(path);    canvas.drawRect(0, 0, getWIDth(), getHeight(), Red Paint in here);    canvas.drawPath(path, paint);    //canvas.restore();}

这样你就可以在pathClip之后绘制背景

你不会看到任何红色,因为你画在它后面的所有路径上,如果我猜对了 – 你希望能够用一种颜色绘制一个圆的一部分,而其他颜色的其余部分 – 你可以实现它您将剪辑的路径将是整个圆圈,您绘制的路径将是您要绘制的部分

总结

以上是内存溢出为你收集整理的android – canvas.clipPath()即使在禁用harware加速后也无法正常工作全部内容,希望文章能够帮你解决android – canvas.clipPath()即使在禁用harware加速后也无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1107292.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存