网上没找到,于是自己写了一个,简单的算法,利用 PropertyValuesHolder实现多个动画的集合,不多说,直接上代码吧,非常好理解:
/**
* 气泡漂浮动画
* @param view
* @param duration 动画运行时间
* @param offset 动画运行幅度
* @param repeatCount 动画运行次数
* @return
*/
public static ObjectAnimator bubbleFloat(View view, int duration, int offset, int repeatCount) {
float path = (float) (Math.sqrt(3)/2*offset);
PropertyValuesHolder translateX = PropertyValuesHolder.ofKeyframe(View.TRANSLATION_X,
Keyframe.ofFloat(0f, 0),
Keyframe.ofFloat(1/12f, offset / 2),
Keyframe.ofFloat(2/12f, path),
Keyframe.ofFloat(3/12f, offset),
Keyframe.ofFloat(4/12f, path),
Keyframe.ofFloat(5/12f, offset / 2),
Keyframe.ofFloat(6/12f, 0),
Keyframe.ofFloat(7/12f, -offset / 2),
Keyframe.ofFloat(