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();