ValueAnimator
ValueAnimator 引入了一种简单的方法来设置一个值(特定类型的动画,例如 int,float 等)。
通常的使用方法是:
- 创建一个
ValueAnimator,它将动画从min到max的值 - 添加一个
UpdateListener,你将使用计算出的动画值(使用getAnimatedValue()可以获得 )
有两种方法可以创建 ValueAnimator:
(示例代码在 250ms 中将 float 从 20f 动画到 40f)
- 从
xml(把它放在/res/animator/):
<animator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="250"
android:valueFrom="20"
android:valueTo="40"
android:valueType="floatType"/>
ValueAnimator animator = (ValueAnimator) AnimatorInflater.loadAnimator(context,
R.animator.example_animator);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator anim) {
// ... use the anim.getAnimatedValue()
}
});
// set all the other animation-related stuff you want (interpolator etc.)
animator.start();
- 从代码:
ValueAnimator animator = ValueAnimator.ofFloat(20f, 40f);
animator.setDuration(250);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator anim) {
// use the anim.getAnimatedValue()
}
});
// set all the other animation-related stuff you want (interpolator etc.)
animator.start();