背景
由于Xamrin.Forms没有比较好看的ColorPicker,Github找了好久终于一个比较满意的Demo, 这个demo基于SkiaSharp实现了一个基于弹窗式的颜色选择器,效果图见下文CircleColorPicker。于是本文基于这个demo进行了扩展并用SkiaSharp的SweepGradient实现了一个色轮选择器WheelColorPicker分享给大家,本文的源代码请在这里下载或在文章末尾下载。
效果图
Android | iOS | |
---|---|---|
CircleColorPicker | ![]() |
![]() |
WheelColorPicker | ![]() |
![]() |
什么是SkiaSharp?
SkiaSharp 是.NET 和 C# 由 Google 产品中广泛使用的开放源代码 Skia 图形引擎提供支持的 2D 图形系统。 可以在 Xamarin.Forms 应用程序中使用 SkiaSharp 绘制 2D 矢量图形、 位图和文本。它和Winform.Forms年代的GDI+有点类似,熟悉GDI+的类似,基本就是定义一个绘图“画布”(如:SKCanvasView或者SKGLView),然后在这些画布的重绘制事件上通过组合不同的“画笔(SKPaint)”和“元素(DrawLine/DrawCircle…)”进行画画。
Xamarin.Forms项目可以通过Nuget上查找SkiaSharp.Views.Forms进行安装。
关于SkiaSharp的详细资料可以参考这里:
h