ObjectAnimator 属性动画的参数0的注意

ObjectAnimator 属性动画的参数0的注意

注意:属性动画的原点(0,0)是指要执行动画的控件在还没有执行动画之前的位置,而不是屏幕或者父布局的的左上角的坐标!!!!而诸如ObjectAnimator.ofFloat方法里传入的数值除了0以外都是指相对于原点(0,0)的距离,而不是手指触控的距离

如下:iv_fireworks要执行动画,从初始位置向手指触控点垂直移动,终点是手指触控点,如果是下面的代码,则不可能做到目的:
ObjectAnimator 属性动画的参数0的注意

其中yTarget是手指触控点的Y坐标,top是iv_fireworks到父顶部的距离(也就是fireworks的Y坐标),那么 ObjectAnimator translationY = ObjectAnimator.ofFloat(iv_fireworks, “TranslationY”, top, yTarget);执行的不是从top到yTarget!!!! 把top改成0才指的是出发点是未执行动画的位置,上图yTarget所在的参数是指从原点到目标点之间的差值,所以改成differenceY,如下:

ObjectAnimator 属性动画的参数0的注意