android 属性动画替换差值器和估值器 Keyframe

通常动画的速度通过插值器或者估值器实现
但是这种实现方法要有一定的数学功底,所以可以跟跟H5那样,关键帧实现动画的速度

// 1. 创建Keyframe实例
// 参数1为该关键帧处于动画的执行百分比
// 参数2为该关键字的动画属性值
Keyframe keyframe_0 = Keyframe.ofFloat(0f, 0f);
Keyframe keyframe_1 = Keyframe.ofFloat(0.5f, 360f);
Keyframe keyframe_2 = Keyframe.ofFloat(1f, 0f);

// 设置Keyframe的插值器
keyframe_1.setInterpolator(new LinearInterpolator());
keyframe_2.setInterpolator(new AccelerateDecelerateInterpolator());

//  2. 创建PropertyValuesHolder对象
PropertyValuesHolder holder = PropertyValuesHolder.ofKeyframe(PropertyConstant.PROPERTY_ROTATION, keyframe_0, keyframe_1, keyframe_2);

// 3. 创建ValueAnimator实例
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(btnProperty, holder);
animator.setDuration(5000);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.start();

你可能感兴趣的:(android 属性动画替换差值器和估值器 Keyframe)