xamarin - Skia View 中的透明部分

标签 xamarin xamarin.forms skia skiasharp

我正在尝试使用 Xamarin.forms 中的 SkiaSharp 在图像上绘制一些多边形。 图片是从服务器下载的,然后缓存在后台。所以我宁愿不操纵图像本身,而是绘制一个新 Canvas 并将其放置在图像顶部的新 View 中,如屏幕截图所示。 (使用相对布局) 正如您在屏幕截图中还可以看到的那样,放置矩形不是问题,但“透明”部分并不是真正透明的。

第一张截图代码:

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 View 中是否可以有完全透明的部分?

最佳答案

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

除了将 Canvas 的颜色设置为透明之外,包含的 Xamarin Forms 元素也需要是透明的!

C#
canvas.Clear(SKColors.Transparent);

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

关于xamarin - Skia View 中的透明部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37135155/

相关文章:

android - 客户端处理程序无法识别我受信任的 API 证书

c# - HttpClient.GetAsync 永远不会在 Xamarin.Android 上返回

Xamarin跨平台 Visual Studio 底部导航

android - 使用 Xamarin.Forms 和 Serilog 将日志写入文件

mvvm - FreshMvvm-PopPageModel在Android上不起作用

c++ - 如何将 C++ 项目的 Skia 库链接到 Xcode

c# - Xamarin.Forms:之后更改 RelativeLayout 约束

c# - 如何修改Shell中的图片以显示通知徽章?

linux - 关于 skia 库的指南

android - Skia 和 Android Paint 绘图对象及其使用或文档