ValueAnimator

ValueAnimator 引入了一種簡單的方法來設定一個值(特定型別的動畫,例如 intfloat 等)。

通常的使用方法是:

  1. 建立一個 ValueAnimator,它將動畫從 minmax 的值
  2. 新增一個 UpdateListener ,你將使用計算出的動畫值(使用 getAnimatedValue() 可以獲得

有兩種方法可以建立 ValueAnimator

(示例程式碼在 250ms 中將 float20f 動畫到 40f

  1. 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();
  1. 從程式碼:
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();