ImageView动画会瞬间恢复到原始位置

时间:2019-01-27 02:19:26

标签: java android animation

我的应用程序中有一个纺车,它是ImageView,并且动画效果很好,但是问题是片刻之间它会恢复到原始位置(旋转0度) 。下面的.gif显示了我在说什么。

enter image description here

旋转的最后一瞬间具有难于捕捉的回弹,使动画看起来极为不流畅。

我正在寻找一种解决此问题的方法,但我不太清楚。这是我的代码,现在为ImageView设置了动画,并将其旋转到动画的最终位置

ImageView readyButton = findViewById(R.id.spinnerready);
final ImageView spinnerSpin = findViewById(R.id.spinnerspin);
final Animation animRotate = new RotateAnimation(ROTATE_FROM, ROTATE_TO, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
animRotate.setDuration(5000);
animRotate.setRepeatCount(0);

    readyButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            float newDeg = ROTATE_TO;
            spinnerSpin.startAnimation(animRotate);

            spinnerSpin.postDelayed(new Runnable() {
                @Override
                public void run() {
                    spinnerSpin.setRotation(ROTATE_TO);
                }
            }, 5000);

            while(newDeg > 360) {
                newDeg = newDeg - 360;
            }
        }
    });

我也尝试将旋转延迟更改为4500而不是5000,但此问题未解决。有没有一种方法可以消除ImageView在动画之后回到其原始位置?

0 个答案:

没有答案