从版本 1.55.0 开始,SkiaSharp 支持读取 SVG 文件。
该软件包已于几天前发布(2016 年 11 月 10 日),但我找不到足够的有关如何使用它的文档。
需要以下包:
SkiaSharp 1.55.0
SkiaSharp 视图和图层 1.55.0
SkiaSharp.Svg 1.55.0-beta1
第一个问题是在 Xamarin.Android 中加载 SKSvg 的最佳方式是什么?
以下是开始使用 SkiaSharp 的两种可能的解决方案,这些解决方案对我有用:
从 Asset 文件夹(或子文件夹)加载 SVG:
public SKSvg LoadAnSvgFromAssets(Context ctx, string assetSvgFileLoc)
{
var assets = ctx.Assets;
var svg = new SKSvg();
using (var stream = new StreamReader(assets.Open(assetSvgFileLoc)))
{
svg.Load(stream.BaseStream);
return svg;
}
}
其中“assetSvgFileLoc”是要加载的 svgFilename.svg,包括(如果是这种情况)Asset 文件夹内的路径(例如“subf1/subf2/mysvg.svg”)。
将 SVG 作为 RAW 资源加载
public SKSvg LoadAnSvgFromResources(Context ctx, string svgName))
{
var resId = ctx.Resources.GetIdentifier(svgName, "raw", ctx.PackageName);
var svg = new SKSvg();
using (var stream = ctx.Resources.OpenRawResource(resId))
{
svg.Load(stream);
return svg;
}
}
在本例中,该文件位于 Resources 子文件夹“raw”内,“svgName”是我们的 svg 的文件名,不带扩展名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)