Я использую RotateAnimation
для вращения ImageView
до определенной степени (мой ImageView - это круг).
degree_old = degree % 360;
degree = random_sector.nextInt(3600) + 720;
Это код, который я использую для первого вращения:
final RotateAnimation rotate = new RotateAnimation(0, degree, RotateAnimation.RELATIVE_TO_SELF,
0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(5000);
rotate.setFillAfter(true);
rotate.setRepeatCount(0);
rotate.setRepeatMode(0);
rotate.setInterpolator(new DecelerateInterpolator());
И этот код снова повернуть на стартовую позицию:
final RotateAnimation rotateBack = new RotateAnimation(degree, (back_degree + degree), RotateAnimation.RELATIVE_TO_SELF,
0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotateBack.setDuration(3000);
rotateBack.setFillAfter(true);
rotateBack.setRepeatCount(0);
rotateBack.setRepeatMode(0);
rotateBack.setInterpolator(new LinearInterpolator());
Это работает.
Моя проблема в том, что скорость вращения не всегда одинакова. Иногда он вращается с очень высокой скоростью, а иногда - с очень низкой.
Мой вопрос: есть ли способ каждый раз иметь одинаковую скорость? Я предпочитаю, чтобы моя анимация вращалась с низкой скоростью в течение 5 секунд.
Как изменить скорость вращения?