2016-11-19 2 views
1

От версии 1.55.0 SkiaSharp имеет поддержку для чтения файлов SVG. Пакет был выпущен несколько дней назад (10 ноября 2016 года), и я не мог найти достаточно документации о том, как его использовать.Загрузить SVG-файл в Xamarin с помощью SkiaSharp

Следующие пакеты необходимы: SkiaSharp 1.55.0 SkiaSharp Просмотров & Слои 1.55.0 SkiaSharp.Svg 1.55.0-бета1

Первый вопрос, что это лучший способ, чтобы загрузить SKSvg в Xamarin .Android?

ответ

3

Здесь возможны два решения, чтобы начать работать с SkiaSharp, которые работают для меня:

Загрузка SVG из папки Asset (или подпапку):

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; 
    } 
} 

В этом случае файл находится в подпапке ресурсов «сырой» и «svgName» является именем нашего SVG без расширения.

Смежные вопросы