如何使用SetAnimationListener()?

时间:2011-08-01 20:18:52

标签: animation xamarin.android

我想知道我的动画何时结束,所以我必须使用AnimationListener。

我似乎无法在MonoDroid(C#)中找到如何做到这一点。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

这是我写的一个简短的一个,当动画结束时给我一个回调:

class AnimationListenerEndCallback : Java.Lang.Object, Animation.IAnimationListener
{
    public delegate void Callback(Animation animation);
    private Callback callback;
    public AnimationListenerEndCallback(Callback callback)
    {
        this.callback = callback;
    }

    public void OnAnimationEnd(Android.Views.Animations.Animation animation)
    {
        callback(animation);
    }

    public void OnAnimationRepeat(Android.Views.Animations.Animation animation)
    {
        // do nothing
    }

    public void OnAnimationStart(Android.Views.Animations.Animation animation)
    {
        // do nothing
    }
}

你这样使用它:

Animation a = AnimationUtils.LoadAnimation(this, Resource.Animation.pull_up);
a.SetAnimationListener(new AnimationListenerEndCallback(delegate
{
   // all your local variables are still in scope, so you
   // can use them here
}));