Android动画不重复

时间:2017-07-13 12:13:13

标签: android animation android-animation

我想做一个动画。它必须淡入淡出。

工作,但是,我必须使它无限。动画一次有效。

这是我的代码:

Animation fadeIn = new AlphaAnimation(0, 1);
    fadeIn.setInterpolator(new DecelerateInterpolator()); //add this
    fadeIn.setDuration(1000);

    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator()); //and this
    fadeOut.setStartOffset(1000);
    fadeOut.setDuration(1000);

    final AnimationSet animation = new AnimationSet(false); //change to false
    animation.addAnimation(fadeIn);
    animation.addAnimation(fadeOut);
    animation.setRepeatCount(Animation.INFINITE);
    animation.setRepeatMode(Animation.REVERSE);
    linearLayout.setAnimation(animation);

我正试图像这样解决:

Click here

但情况并非如此。我正在以编程方式做所有事情。

有人可以帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

动画淡入,缩小;

private void setAnimationOnPlayButton(){
    fadeIn = AnimationUtils.loadAnimation(getActivity(), R.anim.fadeIn );
    fadeOut = AnimationUtils.loadAnimation(getActivity(), R.anim.fadeOut );
    btnPlayVideoInPlayer.setAnimation(fadeIn);
    btnPlayVideoInPlayer.setAnimation(fadeOut);
    btnPlayVideoInPlayer.startAnimation(fadeIn);
    fadeIn .setAnimationListener(new Animation.AnimationListener() {

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

        }

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

        }

        @Override
        public void onAnimationEnd(Animation arg0) {
            btnPlayVideoInPlayer.startAnimation(zoomout);

        }
    });
    fadeOut.setAnimationListener(new Animation.AnimationListener() {

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

        }

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

        }

        @Override
        public void onAnimationEnd(Animation arg0) {
            btnPlayVideoInPlayer.startAnimation(fadeIn );

        }
    });
}

R.anim.fadein和R.anim.fadeout是anim文件夹中的动画文件

答案 1 :(得分:0)

我刚刚测试了这段代码,它的工作方式正是您想要的。

首先在src> main> res下创建一个名为anim的新的android资源目录。

然后创建一个新的动画资源文件并将其命名为anim_fade.xml。

将以下代码粘贴到其中。

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="1000" android:repeatMode="reverse"
android:repeatCount="infinite"/>

执行此操作后,转到您的java文件并在您的课程中启动动画。如果您希望它在应用程序启动时启动,请将其粘贴到onCreate方法中,如果您希望它在onClick或其他任何位置启动,请将其粘贴到该类中。

public void example{
//Major Animation code here

Animation fade = AnimationUtils.loadAnimation(this, R.anim.anim_fade);
    linearlayout.startAnimation(fade);
}