Android 动画(缩放+淡出):奇怪的错误

Android animations (zoom+fade out): weird bug

我想制作一个重复的动画,我在其中放大和淡出 ImageView(两个动画同时出现)。

这是我的代码:

    <com.xxxx.SquareImageView
        android:id="@+id/redImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/red_square"
        android:layout_centerInParent="true"
        android:visibility="invisible"
  
        />




float scaleMax = 1f;
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setStartOffset(0);
fadeOut.setDuration(1500);

Animation scale1 = new ScaleAnimation(0, scaleMax, 0, scaleMax, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scale1.setDuration(1500);
scale1.setStartOffset(0);


animSet.setFillEnabled(true);

animSet.addAnimation(scale1);
animSet.addAnimation(fadeOut);

animSet.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {

        view.setVisibility(View.VISIBLE);

    }

    @Override
    public void onAnimationEnd(Animation animation) {


        view.setVisibility(View.INVISIBLE);
        view.startAnimation(animSet);


    }

    @Override
    public void onAnimationRepeat(Animation animation) {


    }
});


view.startAnimation(animSet);

图像正确放大和淡出。尽管如此,它在全尺寸下出现的时间很短 (0.1s),并且两个动画之间没有透明度。我不明白为什么。

有什么想法吗?

谢谢。

你一遍又一遍地启动动画集,所以为了流畅你需要

animSet.cancel();

你开始的每一个动画,在你在 onAnimationEnd() 中重新开始之前。