【问题标题】:Android: Animation is reapeting while AnimationListener is implementedAndroid:动画在实现动画侦听器时重复
【发布时间】:2013-02-06 19:18:59
【问题描述】:

在我的 Android 应用程序中,我想在另一个 View 动画完成后在一个 View 上启动一个动画。所以我使用了AnimationListener并使用了override方法onAnimationEnd()。 但问题是当第一个视图的动画完成时,第一个和第二个视图都开始动画。这意味着第一个视图与第二个动画重复它的动画。

    final Animation anim = AnimationUtils.loadAnimation(Home.this,R.anim.myanimation);
    anim.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }
        @Override
        public void onAnimationEnd(Animation animation) {

                image_2.startAnimation(anim);
            }

                    @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }});
   image_1.startAnimation(anim);

我希望 image_2 的动画在 image_1 的动画之后开始。但是 image_1 不会重复它的动画。动画将按顺序发生。该怎么做?

我的动画代码如下:

     <set xmlns:android="http://schemas.android.com/apk/res/android"   android:interpolator="@android:anim/accelerate_interpolator"    android:fillEnabled="true"  android:fillAfter="true"   android:startOffset="5000">


        <scale android:fromXScale="1.0" android:toXScale="0.0"   android:fromYScale="1.0"    android:toYScale="1.0"      android:pivotX="100%"  android:duration="8000"   />

    </set>

【问题讨论】:

  • startAnimation 将动画设置为视图并启动它。 image_2.startAnimation 将动画设置为 image_2 并为 1 和 2 启动它。在启动第二个动画之前使用 image_1.setAnimation(null)

标签: android android-animation


【解决方案1】:

这是因为您应该需要实现两个侦听器。当您最初调用 image2 动画时,动画会发生,并且在动画侦听器结束后动画会再次发生,因此动画将发生两次。因此,为两个图像视图设置两个侦听器和两个单独的动画可能会解决您的问题。 .

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2013-04-23
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多