我需要通过更改其属性(大小,位置,旋转角度等)来为我的GLSurfaceView上的某些对象设置动画。 我想使用插值器来改变我的动画速率(加速/减速),我还需要知道它何时结束(onAnimationEnd listener)。
android.animation.Animator类非常适合这项工作,但不幸的是它需要API 11,我正在为API 7开发。
我可以使用其他课程吗?也许是第三方,但轻量级并针对Android进行了优化。
答案 0 :(得分:0)
原来,view.animation。* Interpolator类可以单独使用来返回插值。因此,可以在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);
....