2016-11-19 1 views
1

De la version 1.55.0 SkiaSharp prend en charge la lecture des fichiers SVG. Le paquet a été publié il y a quelques jours (10 nov. 2016) et je n'ai pas trouvé assez de documentation sur la façon de l'utiliser.Chargement du fichier SVG dans Xamarin avec SkiaSharp

Les packages suivants sont requis: SkiaSharp 1.55.0 SkiaSharp Vues & couches 1.55.0 SkiaSharp.Svg 1.55.0 beta1-

La première question est quelle est la meilleure façon de charger un SKSvg dans Xamarin .Android?

Répondre

3

Voici deux solutions possibles pour commencer à travailler avec SkiaSharp qui travaillent pour moi:

SVG Chargement du dossier actif (ou sous-dossier):

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

où "assetSvgFileLoc" est le svgFilename. svg à charger, y compris (si c'est le cas) le chemin dans le dossier Asset (par exemple "subf1/subf2/mysvg.svg").

SVG Chargement RAW ressources

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

Dans ce cas, le fichier se trouve dans le sous-dossier des ressources « brut » et le « svgName » est le nom de notre svg sans extension.