Android和iOS中SVG的文件位置和构建类型

问题描述 投票:0回答:1

我对Xamarin.Native SVG支持here的文档有疑问:

在示例代码中,它调用LoadFile

ImageService.Instance
    .LoadFile("image.svg")
    .
    .

为了使它起作用,必须将image.svg放置在项目中的什么位置?image.svg的构建类型是什么(内容,AndroidRersource等)?iOS的行为是否相同?

我无法使其正常工作。我将svg放置在可绘制目录中,构建类型为AndroidResource

Android Project
    |
    |
    -> Resources
        |
        |
        -> drawable
            |
            |
            -> image.svg
xamarin xamarin.android xamarin.ios ffimageloading
1个回答
1
投票

ImageService.Instance.LoadFile:它用于从磁盘加载文件(仅完整路径)。

您应该使用LoadFileFromApplicationBundle(应用程序捆绑包)或LoadCompiledResource(应用程序资源)。

从应用程序捆绑包的文件加载图像。

          /// <summary>
          /// Load an image from a file from application bundle.
          /// eg. assets on Android, compiled resource for other platforms
          /// </summary>
          /// <returns>The new TaskParameter.</returns>
          /// <param name="filepath">Path to the file.</param>
          TaskParameter LoadFileFromApplicationBundle(string filepath);

Xamarin.Android

xml:

  <FFImageLoading.Views.ImageViewAsync
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

资产:具有构建动作的AndroidAsset

enter image description here

MainActivity:

 var imageView = FindViewById<ImageView>(Resource.Id.imageView);
        var filePath = "sample2.svg";
        ImageService.Instance.LoadFileFromApplicationBundle(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);

从应用程序资源的文件加载图像。使用可扩展文件夹中的资源名称,不带扩展名。

          /// <summary>
          /// Load an image from a file from application resource.
          /// </summary>
          /// <returns>The new TaskParameter.</returns>
          /// <param name="resourceName">Name of the resource in drawable folder without extension</param>
          TaskParameter LoadCompiledResource(string resourceName);

Xamarin.Android

xml:

 <FFImageLoading.Views.ImageViewAsync
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/> 

可绘制资源:带有BuildAction的AndroidResource

enter image description here

MainActivity:

var filePath = "sample";

ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);

enter image description here

在您提供的链接中,它还显示了从Xamarin.Forms上的嵌入式资源加载的方法,您可以检查一下。 https://github.com/luberda-molinet/FFImageLoading/wiki/SVG-support#xamarinandroid

© www.soinside.com 2019 - 2024. All rights reserved.