Xamarin.Forms 中的 SkiaSharp 图形

Download Sample下载示例

在 Xamarin.Forms 应用程序中将 SkiaSharp 用于 2D 图形

SkiaSharp 是面向 .NET 和 C# 的 2D 图形系统,由 Google 产品中广泛使用的开放源代码 Skia 图形引擎提供支持。 可以在 Xamarin.Forms 应用程序中使用 SkiaSharp 来绘制二维矢量图、位图和文字。

本指南假定你熟悉 Xamarin.Forms 编程。

SkiaSharp 预备知识

适用于 Xamarin.Forms 的 SkiaSharp 被打包为一个 NuGet 包。 在 Visual Studio 或 Visual Studio for Mac 中创建 Xamarin.Forms 解决方案后,可以使用 NuGet 包管理器搜索 SkiaSharp.Views.Forms 包并将其添加到解决方案。 如果在添加 SkiaSharp 后检查每个项目的“引用”部分,可以看到解决方案中的每个项目中都添加了各种 SkiaSharp 库。

如果你的 Xamarin.Forms 应用程序面向 iOS,请编辑其 Info.plist 文件,将最低部署目标更改为 iOS 8.0。

在任何使用 SkiaSharp 的 C# 页面中,你都需要为 using 命名空间包括一个 SkiaSharp 指令,其中包含要在图形编程中使用的所有 SkiaSharp 类、结构和枚举。 对于特定于 Xamarin.Forms 的类,你还需要为 SkiaSharp.Views.Forms 命名空间包括一个 using 指令。 这是一个更小的命名空间,最重要的类是 SKCanvasView。 此类派生自 Xamarin.FormsView 类并托管你的 SkiaSharp 图形输出。

重要

SkiaSharp.Views.Forms 命名空间还包含一个 SKGLView 类,它派生自 View 但使用 OpenGL 来呈现图形。 为了简单起见,本指南仅使用 SKCanvasView,但使用 SKGLView 非常相似。

SkiaSharp 绘制基础知识

可以使用 SkiaSharp 绘制的一些最简单的图形是圆形、椭圆和矩形。 在显示这些图时,你将了解 SkiaSharp 坐标、尺寸和颜色。 文本和位图的显示更复杂,但这些文章也介绍了这些技术。

SkiaSharp 线和路径

图形路径是一系列连接的直线和曲线。 可以对路径进行描边、填充,或同时进行这两种操作。 本文涵盖了线条绘制的许多方面,包括笔划端点和接合点,以及虚线和点线,但没有讨论曲线几何图形。

SkiaSharp 转换

转换用于以统一的方式平移、缩放、旋转或倾斜图形对象。 本文还展示了如何使用标准的 3 X 3 转换矩阵来创建非仿射转换并将转换应用于路径。

SkiaSharp 曲线和路径

继续探索路径,向路径对象添加曲线,并利用其他功能强大的路径功能。 你将了解如何以简洁的文本字符串指定整个路径、如何使用路径效果,以及如何深入了解路径内部。

SkiaSharp 位图

位图是与显示设备的像素相对应的位的矩形阵列。 此系列文章介绍了如何加载、保存、显示、创建、绘制和访问 SkiaSharp 位图的位并对其进行动画处理。

SkiaSharp 效果

效果是更改图形的正常显示的属性,包括线性和圆形渐变、位图平铺、混合模式、模糊,等等。