Скорость анимации поворота - PullRequest
1 голос
/ 20 августа 2011

Я хочу, чтобы моя анимация вращалась только за один оборот. Каждый раз, когда я настраиваю длительность, он просто вращается с одной и той же скоростью дольше / медленнее. Куда я иду не так?

private static final float ROTATE_FROM = 0.0f;
private static final float ROTATE_TO = -10.0f * 360.0f;
protected RotateAnimation r = new RotateAnimation(ROTATE_FROM, ROTATE_TO,
                                        Animation.RELATIVE_TO_SELF, 0.5f,
                                        Animation.RELATIVE_TO_SELF, 0.5f);
r.setDuration(5000);     
r.setRepeatCount(0);
r.setInterpolator(this, android.R.anim.linear_interpolator);
r.setAnimationListener(AndroidVideoPlayer.this);        
favicon.startAnimation(r);

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

Я считаю, что вы ищете repeatCount

r.setRepeatCount(0)

http://developer.android.com/reference/android/view/animation/Animation.html#setRepeatCount(int)

Из документации:

Устанавливает, сколько разанимация должна быть повторена.Если количество повторений равно 0, анимация никогда не повторяется.Если число повторений больше 0 или INFINITE, режим повторения будет принят во внимание.Число повторений по умолчанию равно 0.

Или вы говорите, что анимация продолжает вращаться для любого установленного значения duration?(то есть, вы устанавливаете его на 5000, он вращается в течение 5 секунд, даже если он выходит за пределы «конца»).Что если вы установите это значение меньше, чем время, необходимое для вращения анимации?

В этом случае, вероятно, ваш LinearInterpolator анимирует постоянную скорость изменения.Возможно, вы могли бы напечатать значение computeDurationHint(), чтобы посмотреть, сможет ли приложение угадать, какова должна быть продолжительность.

PS Каковы ваши значения ROTATE_FROM и ROTATE_TO?

1 голос
/ 28 августа 2011

Проблема была в -10.0f!

...