Skia视图中的透明部分

3
我将尝试在Xamarin.forms中使用SkiaSharp来在图像上绘制一些多边形。该图像从服务器下载并在后台缓存。因此,我希望不要直接操作图像本身,而是绘制一个新画布并将其放置在图像顶部的新视图中(使用相对布局),就像屏幕截图中所示。 正如您在屏幕截图中看到的那样,放置矩形不是问题,但“透明”部分并不真正透明。
第一个屏幕截图的代码:
using (var paint = new SKPaint ()) {
  paint.IsAntialias = true;
            using (var path = new SKPath ()) {
                path.MoveTo (0f, 0f);
                path.LineTo (width, height);
                path.LineTo (0, width);
                path.Close ();

                paint.Color = SKColors.Orange;
                canvas.DrawPath (path, paint);

            }
        }

在第二次尝试中,我试图使用


            canvas.Clear(SKColors.Transparent);

但它只会改变为黑色背景。

有没有人知道在Skia视图中是否可能拥有完全透明的部分?


有人有任何想法吗?或者只是不可能的吗? - Chris
2个回答

8
您的问题帮助我今天解决了这个问题:
除了将画布的颜色设置为透明外,包含Xamarin Forms元素也需要是透明的!
C# canvas.Clear(SKColors.Transparent);
XAML

太好了,听到这个消息真是太棒了!我已经为此奋斗了很长时间,最后放弃了。但我肯定会尝试你的方法,看起来太容易了,应该能正常工作的;-) - Chris
你救了我的一天!真的非常感激。 - Bright Lee

0
猜测一下,因为你忘记了截图,
你可能想要做的是使用clipping
类似于:
canvas.Clear();
canvas.ClipPath(path);
canvas.ResetMatrix();
canvas.DrawBitmap(...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接