Why my animation doesn't repeat?

Refresh

November 2018

Views

1.5k time

5

I've got repeatCount set as INFINITE (-1) and repeatMode set as RESTART (1)

http://developer.android.com/reference/android/view/animation/Animation.html#INFINITE

Even though my animation works, it doesn't repeat properly. What's missing in my code?

public class SyncActivity extends Activity {

    Animation slideanim;
    ImageView senoide;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_sync);

        senoide = (ImageView) findViewById(R.id.imageView3);

        slideanim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move);
        //slideanim.setFillAfter(true);
        slideanim.setRepeatCount(Animation.INFINITE);
        slideanim.setRepeatMode(Animation.RESTART);

        senoide.setAnimation(slideanim);
        senoide.startAnimation(slideanim);
    }
}

move.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate android:fromXDelta="0%" android:toXDelta="-18.5%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:duration="1000"/>
</set>

1 answers

11

Изменение XML, чтобы иметь режим повтора и рассчитывать на нее:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate android:fromXDelta="0%" android:toXDelta="-18.5%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:repeatCount="infinite"
             android:repeatMode="restart"
             android:duration="1000"/>
</set>