gpt4 book ai didi

c# - 在 ViewFlipper 的 View 之间滑动动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:30 25 4
gpt4 key购买 nike

在一个 Activity 中我有以下内容:

var flipper = FindViewById<ViewFlipper>(Resource.Id.flipper);
flipper.Touch += flipper_Touch;

触摸处理程序的基本实现如下所示:

float oldTouchValue = 0;

void flipper_Touch(object sender, View.TouchEventArgs e)
{
var flipper = sender as ViewFlipper;
switch(e.Event.Action)
{
case MotionEventActions.Down:
oldTouchValue = e.Event.GetX();
break;

case MotionEventActions.Up:
float currentX = e.Event.GetX();
if (oldTouchValue < currentX)
{
flipper.ShowNext();
}
else if (oldTouchValue > currentX)
{
flipper.ShowPrevious();
}
break;
}
}

这允许我在不同的 View 之间导航,但我想让它向左/向右滑动

我看过一些有关如何使其工作的 Java 示例,但没有直接将其转换为 C# 的方法。

要使 View 滑动需要什么?有没有一种方法可以在 XML 中定义动画
我能够让 Activity 滑入和滑入使用 XML 中定义的 animations 并调用 OverridePendingTransition,但我不确定如何在此处应用这些知识。

最佳答案

This allows me to navigate between the different views but I'd like to make it slide left/right

ViewFlipper 通过它的 ViewAnimator 类,有一些方法来设置进出 Action 的动画,setInAnimation()setOutAnimation()。这是在 Android SDK 中,但应该在 MonoDroid 中有对应关系(不幸的是我不熟悉所以我可能是错的)。为了获得所需的动画,只需使用上述两种方法来设置所需的动画(xml 文件或以编程方式构建的 Animation),然后调用 showNext/Previous 方法,例如你现在这样做。

Android SDK 中甚至有一些幻灯片动画,但我还是不知道它们是否存在于 MonoDroid 中。

更新:这些方法在 Monodroid 中确实可用,并像这样公开:

//Using one of the built in animations:
flipper.setInAnimation(this, Android.Resource.Animation.SlideInLeft);
flipper.setOutAnimation(this, Android.Resource.Animation.SlideOutRight);

//Using custom animations defined in XML
flipper.setInAnimation(this, Resource.Animation.slide_in_right);
flipper.setOutAnimation(this, Resource.Animation.slide_out_left);

关于c# - 在 ViewFlipper 的 View 之间滑动动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com