首页 文章

Skia View中的透明部件

提问于
浏览
1

我正在尝试在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);

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

有谁知道在滑雪视图中是否可以有完全透明的部分?

2 回答

  • 0

    你的问题帮我解决了这个问题:

    除了将画布的颜色设置为透明之外,包含Xamarin Forms元素也必须是透明的!

    C#
    canvas.Clear(SKColors.Transparent);

    XAML
    <views:SKCanvasView ... BackgroundColor="Transparent" />

  • 6

    猜测这里因为你忘记了截图

    您可能想要做的是使用clipping

    就像是 :

    canvas.Clear();
    canvas.ClipPath(path);
    canvas.ResetMatrix();
    canvas.DrawBitmap(...)
    

相关问题