转载

Android属性动画Property Animation系列(2)_VauleAnimator

这个类提供一个简单的运行动画的时间机制,这个机制会计算动画值并且将这个值设置给目标对象。

它有一个供所有动画使用的简单的定时器。并且它运行一个自定义的Handler来保证属性变化是发生在UI线程。

ValueAnimator 默认使用非线性的时间插值器–AccelerateDecelerateInterpolator ,AccelerateDecelerateInterpolator会加速进入和减少退出动画。可以通过setInterpolator方法替换默认的插值器。

使用

使用有两种方式:代码和xml资源的形式来完成。

代码:

private void beginCodeValueAnimator() {
if (mCodeValueAnimator == null) {
mCodeValueAnimator = ValueAnimator.ofFloat(0f, 800f);
// 使用监听器监听动画属性值变化,更新到目标对象
mCodeValueAnimator.addUpdateListener(
new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float i = (float) animation.getAnimatedValue();
mCodeLine.setmX(i);
}
});
mCodeValueAnimator.setDuration(1000);
} else {
mCodeValueAnimator.end();
}
// 根据CheckBox设置Evaluator
mCodeValueAnimator.setEvaluator(mCheckBox.isChecked()
? new MyEvaluator()
: new FloatEvaluator());
mCodeValueAnimator.start();
}

xml完成:

<animator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:valueFrom="1"
android:valueTo="800"
android:valueType="floatType"/>

原文  http://www.qinglinyi.com/posts/Property-Animation-1/
正文到此结束
Loading...