GIF 图像在 .net MAUI 应用程序中不起作用

Raj*_*jan 2 maui .net-maui

我想在我的应用程序中显示一些 gif 动画图像。我用来使用 Xamarin.Forms 执行此操作的库是 Xamarin.FFImageLoading.Svg.Forms。现在我们正在将应用程序迁移到 .net MAUI,我看到 MAUI 文档说它支持 GIF 文件。我尝试了一个示例,但没有成功。

我在以下链接中看到了与 gif 相关的错误和解决方法,并且我也尝试了它,但对我来说 gif 动画仍然无法正常工作。

https://github.com/dotnet/maui/issues/5034

我的代码位于公共存储库 github 上。

https://github.com/rynjas/GifMauiSample

如果您能帮助我解决这个问题,我将不胜感激。

重现该问题的步骤如下:

  1. 创建示例 .NET MAUI 项目
  2. 将 gif 图像添加到 Resources/images 目录 (giphy.gif)
  3. 将 gif 图像属性的 Build 操作设置为 MauiImage
  4. 在MainPage.xml中添加一个图像组件,如下所示运行应用程序,只出现GIF的第一帧,没有动画发生。
    <Image Source="giphy.gif" HeightRequest="200" HorizontalOptions="Center" />
Run Code Online (Sandbox Code Playgroud)
  1. 我按照下面的票证中的解决方法进行操作,因此我将这些步骤添加到 GIFMAUISample/GIFMAUISample.csproj https://github.com/dotnet/maui/issues/5034
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\*.gif" Resize="False" />
Run Code Online (Sandbox Code Playgroud)

问题仍然没有解决。

Moh*_*aei 8

根据官方文档默认加载gif图片时默认不会播放,因为IsAnimationPlaying属性设置为false.

IsAnimationPlaying因此,除非您设置为,否则不会播放 gif 图像true

这是一个经过测试/工作的示例:

<Image Source="giphy.gif"
       HeightRequest="200" 
       HorizontalOptions="Center" 
       IsAnimationPlaying="True" />
Run Code Online (Sandbox Code Playgroud)

重要警报写在文档中:

虽然 .NET MAUI 中的动画 GIF 支持包括下载文件的功能,但它不支持缓存或流式传输动画 GIF。

另请注意,对于 Android,如果它在热重载模式下不播放,请将其设置IsAnimationPlayingfalse,然后将其设置回true,当您处于热重载模式时,它应该可以正常工作

iOS 和 Mac仍然面临一些问题,因此您可以通过以下方式进行跟踪: GitHub 问题

Microsoft 文档:.NET MAUI gif 图像