我对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"/>
资产:具有构建动作的AndroidAsset
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
MainActivity:
var filePath = "sample";
ImageService.Instance.LoadCompiledResource(filePath).WithCustomDataResolver(new SvgDataResolver(64, 0, true)).Into(imageView);
在您提供的链接中,它还显示了从Xamarin.Forms上的嵌入式资源加载的方法,您可以检查一下。 https://github.com/luberda-molinet/FFImageLoading/wiki/SVG-support#xamarinandroid