首页 > 解决方案 > Gif Xamarin 形成 Android

问题描述

我知道 xamarin 表单目前支持播放 gif。我已经尝试了链接https://github.com/jfversluis/AnimatedGifForms/ 但它似乎只适用于示例中类型的 gif,我尝试了另一个 gif,它无法在 android 上加载。它在 IOS 上完美运行。我可以使用 Xamarin.form 4.6 和最新的 Xamarin.Essential 1.5.3 以 xamarin 形式播放 gif 的任何配置

标签: androidxamarinxamarin.formsgif

解决方案


可以使用Image控件在 Xamarin.forms 中加载 gif。

<StackLayout>
    <!-- Place new controls here -->
    <Image Source="sample.gif" IsAnimationPlaying="True"
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />
</StackLayout>

通过 IsAnimationPlaying 控制启动和停止。最初我们打算使用 Start 和 Stop 方法,但所有这些都将 IsAnimationPlaying 分别设置为 true 或 false。这样它也可以通过Binding启动和停止!!

我在这里上传了一个示例项目,您可以查看。

参考:Gif 动画支持

更新

使用Xamarin.FFImageLoading.Svg.Forms加载:

xmlns:ffimageloading="clr-namespace:FFImageLoading.Svg.Forms;assembly=FFImageLoading.Svg.Forms"

<StackLayout>

    <ffimageloading:SvgCachedImage HorizontalOptions="Center" VerticalOptions="CenterAndExpand" Source="blue.gif" />

</StackLayout>

不要忘记CachedImageRenderer.Init(true);进入MainActivity

protected override void OnCreate(Bundle savedInstanceState)
{
    TabLayoutResource = Resource.Layout.Tabbar;
    ToolbarResource = Resource.Layout.Toolbar;

    base.OnCreate(savedInstanceState);

    //Forms.SetFlags("UseLegacyRenderers");

    CachedImageRenderer.Init(true);

    Xamarin.Essentials.Platform.Init(this, savedInstanceState);
    global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
    LoadApplication(new App());
}

推荐阅读