2016-11-19 4 views
1

リリース1.55.0よりSkiaSharpはSVGファイルの読み取りをサポートしています。 パッケージは数日前(2016年11月10日)にリリースされており、使用方法に関する十分な文書が見つかりませんでした。SkiaSharpを使用したXamarinのSVGファイルのロード

以下のパッケージが必要です。 SkiaSharp 1.55.0 SkiaSharpは、最初の質問は何XamarinにSKSvgをロードするための最良の方法です&レイヤー1.55.0 SkiaSharp.Svg 1.55.0-β1

を見て。アンドロイド?私のために働いているSkiaSharpで作業を開始する

答えて

3

ここでは2つの解決策:資産フォルダ(またはサブフォルダ)から

ロードSVG: "assetSvgFileLocは" svgFilenameある

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

。 svgをロードしてください(その場合はAssetフォルダ内のパスを含む)(例えば "subf1/subf2/mysvg.svg")。 RAWリソースとして

ロードSVG

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のファイル名です。

関連する問題