android - 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 的任何配置
解决方案
可以使用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());
}
推荐阅读
- javascript - 赛普拉斯:如何处理从 iframe 触发的窗口确认关闭
- python - 为基于 NaN 的列创建 IF 语句
- c++ - 线程安全的“漂亮计数器”(又名“施瓦茨计数器”)
- javascript - React - 将值传递给 setState 回调
- excel - VBA 宏 - 打开工作簿,设置活动,删除列
- ansible - Ansible:Blockinfile 对它可以创建的文件大小有限制吗?
- javascript - Swiper js幻灯片计数器
- python - 为数据类型集成异常处理
- reactjs - 为什么使用 render-props 而不是仅仅将组件作为 prop 传递?
- swift - EmitterCells 未显示在 CAEmitterLayer 中