Lottie.Forms - 从嵌入资源中加载

14

我在AirBnb的Lottie框架中定义了一个AnimationView,它应该加载放置在我的Xamarin.Forms项目(便携式项目)内Resource文件夹中的文件。

        <forms:AnimationView
            x:Name="AnimationView"
            Animation="SharpLibrary.Forms.Assets.Images.WineGlass.json"
            Loop="True"
            AutoPlay="True"
            VerticalOptions="FillAndExpand"
            HorizontalOptions="FillAndExpand" />

但是似乎它无法解析Animation属性中的字符串,因此不会显示动画。如果我将文件放入资源文件夹并说Animation="WineGlass.json",它就可以正常工作。

有没有办法从嵌入式资源中加载它,或者这不可能吗?


你试过只使用动画名称而不带路径和扩展名吗?像这样:Animation="WineGlass" - FabriBertani
我现在尝试了,但仍然没有显示任何东西。 - DirtyNative
动画属性从平台特定资产中加载文件,而不是从您的可移植资产中加载。 您可以在此处查看实现细节 https://github.com/martijn00/LottieXamarin/blob/develop/Lottie.Forms/Platforms/Ios/AnimationViewRenderer.cs - N Subedi
好的,有没有办法让它从便携设备中加载? - DirtyNative
你尝试使用基于流的方式,根据共享项目文件,在特定项目的正确目录中重新创建 .json 文件了吗? - Filipe Piletti Plucenio
@FilipePilettiPlucenio 只有在平台资源文件夹中才能正常工作,尝试了所有方法但无法从共享资源加载,但有一个选项,如果我可以从共享文件生成 NsUrl,那么我就可以覆盖它。 - Shubham
1个回答

1

一开始它对我有用,你可以把json文件放在文件夹里,或者放在共享文件夹里。

我把它放在文件夹里并将其重命名为Image。

Animation="Images.loading.json"

在C#代码中放置那个。
    animationView.AnimationSource = AnimationSource.EmbeddedResource;

1
这是在较新的版本中添加的,无论如何感谢您的答案 :) - Shubham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接