我想在我的应用程序中显示一些 gif 动画图像。
我用来使用 Xamarin.Forms 执行此操作的库是 Xamarin.FFImageLoading.Svg.Forms。现在我们正在将应用程序迁移到 .net MAUI,我看到 MAUI 文档说它支持 GIF 文件。我尝试了一个示例,但没有成功。
我在以下链接中看到了与 gif 相关的错误和解决方法,并且我也尝试了它,但对我来说 gif 动画仍然无法正常工作。
https://github.com/dotnet/maui/issues/5034 https://github.com/dotnet/maui/issues/5034
我的代码在 github 上,公共存储库。
https://github.com/rynjas/GifMauiSample https://github.com/rynjas/GifMauiSample
如果您能帮助我解决这个问题,我将不胜感激。
重现该问题的步骤如下:
- 创建示例 .NET MAUI 项目
- 将 gif 图像添加到 Resources/images 目录 (giphy.gif)
- 将 gif 图像属性的 Build 操作设置为 MauiImage
- 在MainPage.xml中添加图片组件,如下
运行应用程序,只出现 GIF 的第一帧,没有动画发生。
<Image Source="giphy.gif" HeightRequest="200" HorizontalOptions="Center" />
- 我按照下面的票证中的解决方法进行操作,因此我将这些步骤添加到 GIFMAUISample/GIFMAUISample.csprojhttps://github.com/dotnet/maui/issues/5034 https://github.com/dotnet/maui/issues/5034
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\*.gif" Resize="False" />
问题仍然没有解决。
根据官方文档默认加载gif图片时,默认是不会播放的,因为IsAnimationPlaying
属性设置为false
.
所以,只有你设置后,gif图像才会播放IsAnimationPlaying
to true
.
这是一个经过测试/工作的示例:
<Image Source="giphy.gif"
HeightRequest="200"
HorizontalOptions="Center"
IsAnimationPlaying="True" />
重要警报写在文档中:
虽然 .NET MAUI 中的动画 GIF 支持包括下载文件的功能,但它不支持缓存或流式传输动画 GIF。
还要注意安卓如果它没有在热重载集中播放IsAnimationPlaying
to false
然后将其设置回true
,当您处于热重载模式时,它应该可以正常工作
iOS 和 Mac仍然面临一些问题,因此您可以跟踪:GitHub问题 https://github.com/dotnet/maui/issues/866
微软文档:.NET 毛伊岛 gif 图像 https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/image#load-animated-gifs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)