0

イメージビュー内で画像を回転させるアニメーションを作成しようとしています。その回転は、期間が値よりも小さくなるまで、繰り返しごとに速度(したがって期間)を増加させる必要があります。

私が試したことは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/my_logo"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="2000"
    android:repeatMode="restart"
    android:repeatCount="10"
    android:toDegrees="360">
</rotate>

活動中:

logo = (ImageView) findViewById(R.id.imageViewToRotate);


rotation = AnimationUtils.loadAnimation(this, R.anim.first_animation_splash);
rotation.setAnimationListener(new AnimationListener() {

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

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                if(animation.getDuration()>100)
                    animation.setDuration(animation.getDuration()/2);
                else
                    logo.clearAnimation();
            }

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

            }
        });

@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if(hasFocus){
            logo.startAnimation(rotation);
        }
    }

しかし、同じ期間で10回回転し続けます....どうすれば修正できますか? ありがとう!

4

2 に答える 2

0

これを試して:

  • アニメーションを自動的に再起動しない
  • で、期間を変更してもう一度onAnimationEnd()電話してくださいstartAnimation()

私の推測では、アニメーションオブジェクトへの一部(またはすべて)の変更は、アニメーションの途中で認識されません。

于 2012-10-14T14:03:35.497 に答える
0

持続時間が 100 以下の場合にアニメーションが終了するようにしたい場合は、 に置き換えることができlogo.clearAnimation()ますanimation.end()

于 2016-08-03T01:19:26.243 に答える