为图像视图设置的动画

时间:2015-07-02 23:25:21

标签: android android-animation

我希望在同一个ImageView上播放多个动画。我正在使用动画集,但它永远不会消失。但它确实会旋转。有人能告诉我我错过了什么吗?

    AnimationSet s = new AnimationSet(false);//false mean dont share interpolators

    Animation fadeIn = new AlphaAnimation(0, 1);
    fadeIn.setInterpolator(new DecelerateInterpolator()); // add this
    fadeIn.setDuration(fadeInDuration);
    iv.setAnimation(fadeIn);
    iv.startAnimation(fadeIn);


    RotateAnimation anim = new RotateAnimation(0.0f, 360.0f , Animation.RELATIVE_TO_SELF, .5f, Animation.RELATIVE_TO_SELF, .5f);
    anim.setInterpolator(new LinearInterpolator());
    anim.setRepeatCount(Animation.INFINITE);
    anim.setDuration(800);

    s.addAnimation(fadeIn);
    s.addAnimation(anim);
    iv.startAnimation(s);

1 个答案:

答案 0 :(得分:0)

你错过了:

    Animation fadeIn = new AlphaAnimation(0, 1);
    fadeIn.setInterpolator(new DecelerateInterpolator()); // add this
    fadeIn.setDuration(fadeInDuration);
    fadeIn.setFillEnabled(true); // to apply setFillBefore and setFillAfter
    fadeIn.setFillBefore(true); // it means that at start of animation you set alpha="0"
    fadeIn.setFillAfter(false);
    iv.setAnimation(fadeIn);
    iv.startAnimation(fadeIn);

此外,在您的样式中,您必须删除alpha="0"

AlphaAnimation正在处理您的图片。因此,如果您设置alpha="0",则可以在此0之间进行操作。如果是alpha="1"或没有它(当样式默认为alpha="1"时),它可以在0-1之间工作。