Android - анимация анимации для использования с OpenGL - PullRequest
0 голосов
/ 04 января 2012

Мне нужно анимировать некоторые объекты в GLSurfaceView, изменив их свойства - размер, положение, угол поворота и т. Д. Я хочу использовать интерполяторы для изменения скорости моей анимации (ускорения / замедления), а также мне нужно знать, когда она заканчивается (слушатель onAnimationEnd).

android.animation.Animator класс идеально подходит для этой работы, но, к сожалению, он требует API 11, и я разрабатываю для API 7.

Есть ли другой класс, который я могу использовать? Может быть сторонний, но легкий и оптимизированный для Android.

1 Ответ

0 голосов
/ 04 января 2012

Оказалось, что view.animation. * Классы интерполяции могут использоваться самостоятельно для возврата интерполированных значений. Так что свойства для анимации (в моем случае - угла) можно легко рассчитать в GLSurfaceView.Renderer.onDrawFrame:

...
DecelerateInterpolator animationInterpolator = new DecelerateInterpolator();
...
long time = SystemClock.uptimeMillis()-animationStart;
float timeInterpolated = (float) time / (float)(animationEnd-animationStart);
timeInterpolated=animationInterpolator.getInterpolation(timeInterpolated);
angle = animationStartAngle + ((animationEndAngle - animationStartAngle) * timeInterpolated);
....
...