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

本文深入探讨了在使用ObjectAnimator属性动画时常见的误区,即动画起点并非屏幕或父布局的左上角,而是控件自身初始位置。文章通过实例解释了如何正确设置translationY属性,确保动画从控件初始位置准确移动到目标位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

如下:iv_fireworks要执行动画,从初始位置向手指触控点垂直移动,终点是手指触控点,如果是下面的代码,则不可能做到目的:
在这里插入图片描述

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值