Xamarin 设置ContentPage背景图像的动画
到目前为止,我还没有找到这个简单问题的答案: 如何设置背景图像的动画 现在我想玩这个背景,而不是改变它,我非常想模仿苹果的照片做幻灯片: 最初的背景是1.jpg 使用动画沿一个方向移动它 将背景淡入2.jpg 冲洗并在两个图像之间重复循环图像 但是,我不知道如何检索图像对象以便为其设置动画 请注意,我不想要gif,只想要简单的静态图像。查看PageRenderer源代码,您可以很容易地看到,没有像您假设的那样的底层图像Xamarin 设置ContentPage背景图像的动画,xamarin,xamarin.forms,Xamarin,Xamarin.forms,到目前为止,我还没有找到这个简单问题的答案: 如何设置背景图像的动画 现在我想玩这个背景,而不是改变它,我非常想模仿苹果的照片做幻灯片: 最初的背景是1.jpg 使用动画沿一个方向移动它 将背景淡入2.jpg 冲洗并在两个图像之间重复循环图像 但是,我不知道如何检索图像对象以便为其设置动画 请注意,我不想要gif,只想要简单的静态图像。查看PageRenderer源代码,您可以很容易地看到,没有像您假设的那样的底层图像 void UpdateBackgroundImage(Page view)
void UpdateBackgroundImage(Page view)
{
if (!string.IsNullOrEmpty(view.BackgroundImage))
this.SetBackground(Context.GetDrawable(view.BackgroundImage));
}
他们相当直接地将其设置在本机控件中。这意味着你必须模仿背景图像以获得动画效果。这个词是否存在
我不会给你现成的源代码,但我实现了一些类似的网格绝对布局可能也是可能的
网格中的每一行和每一列都有一个单独的行和列
包含背景的图像应先添加到集合中,而不必临时添加任何其他子对象
如果没有背景图像,则直接添加新的背景图像
如果已经有背景图像,则添加新图像时不透明度等于0
创建两个动画
一个是将旧图像淡出
一个是淡入新图像
代码:
因为我使用TranslateTo而不是Animate,所以我的确切代码看起来有点不同,但这应该可以 请看一下这些文件。你所做的不是动画@Greggz我现在做的不是,但我想做的是动画的背景图像的一页,而不是一个图像内的一页,我可以很容易地做到。假设你可以得到图像参考,我没有看到太多的区别。请将实际代码与您的尝试一起发布
void UpdateBackgroundImage(Page view)
{
if (!string.IsNullOrEmpty(view.BackgroundImage))
this.SetBackground(Context.GetDrawable(view.BackgroundImage));
}
private void FadeViews(View newView, View currentView)
{
newView.Opacity = 0;
Grid.Children.Insert(0, newView);
newView.Animate("FadeIn", d => newView.Opacity = d, 0, 1);
newView.Animate("FadeOut", d => currentView.Opacity = d, 1, 0, finished: (_, __) => this.Grid.Children.Remove(currentView));
}