Android 和 iOS 中 SVG 的文件放置和构建类型
File placement and Build type for SVG's in Android and iOS
我对 Xamarin.Native SVG 支持的文档有疑问 here:
在示例代码中调用LoadFile
:
ImageService.Instance
.LoadFile("image.svg")
.
.
为了使其工作,必须 image.svg 放置在项目中的哪个位置?
image.svg(内容、AndroidRersource 等)的构建类型是什么?
iOS 的行为是否相同?
我无法正常工作。我将我的 svg 放在构建类型为 AndroidResource
.
的 drawable 目录中
Android Project
|
|
-> Resources
|
|
-> drawable
|
|
-> image.svg
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"/>
Assets:带有Build Action的AndroidAsset
主要活动:
var imageView = FindViewById<ImageView>(Resource.Id.imageView);
var filePath = "sample2.svg";
ImageService.Instance.LoadFileFromApplicationBundle(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
从应用程序资源的文件中加载图像。使用 drawable 文件夹中的资源名称,不带扩展名。
/// <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"/>
Drawable资源:与BuildAction的AndroidResource
主要活动:
var filePath = "sample";
ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
在你提供的link中,也给出了从Xamarin.Forms上嵌入资源加载的方式,你可以查看一下。 https://github.com/luberda-molinet/FFImageLoading/wiki/SVG-support#xamarinandroid
我对 Xamarin.Native SVG 支持的文档有疑问 here:
在示例代码中调用LoadFile
:
ImageService.Instance
.LoadFile("image.svg")
.
.
为了使其工作,必须 image.svg 放置在项目中的哪个位置? image.svg(内容、AndroidRersource 等)的构建类型是什么? iOS 的行为是否相同?
我无法正常工作。我将我的 svg 放在构建类型为 AndroidResource
.
Android Project
|
|
-> Resources
|
|
-> drawable
|
|
-> image.svg
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"/>
Assets:带有Build Action的AndroidAsset
主要活动:
var imageView = FindViewById<ImageView>(Resource.Id.imageView);
var filePath = "sample2.svg";
ImageService.Instance.LoadFileFromApplicationBundle(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
从应用程序资源的文件中加载图像。使用 drawable 文件夹中的资源名称,不带扩展名。
/// <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"/>
Drawable资源:与BuildAction的AndroidResource
主要活动:
var filePath = "sample";
ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
在你提供的link中,也给出了从Xamarin.Forms上嵌入资源加载的方式,你可以查看一下。 https://github.com/luberda-molinet/FFImageLoading/wiki/SVG-support#xamarinandroid