AnimatorSet的用法(多动画同时播放)

首先是要操作的布局:

// 下面是伪码
<xxxx
    android:id="@+id/my_view"
    android:layout_width="xxdp"
    android:layout_height="xxdp" />

然后搞一个对象: 

var animationSet = AnimatorSet()

最后是具体用法,解释写在代码里面:

    private fun myAnimationSet() {
        // findById等方法拿到view
        my_view = **********
        // 监听事件,可以在它的生命周期上做操作
        animationSet?.addListener(object : Animator.AnimatorListener {
            override fun onAnimationStart(animation: Animator?) {
            }

            override fun onAnimationEnd(animation: Animator?) {
            }

            override fun onAnimationCancel(animation: Animator?) {
            }

            override fun onAnimationRepeat(animation: Animator?) {
            }

        })
        // 沿x轴缩小一半
        val x = ObjectAnimator.ofFloat(my_view, "scaleX", 1.0f, 0.5f)
        // 沿y轴缩小一半
        val y = ObjectAnimator.ofFloat(my_view, "scaleY", 1.0f, 0.5f)

        // 下面连续两行表示从my_view中心缩小
        val width = ObjectAnimator.ofFloat(my_view, "pivotX", my_view.width / 2f)
        val height = ObjectAnimator.ofFloat(my_view, "pivotY", my_view.height / 2f)

        // 透明度
        val alpha = ObjectAnimator.ofFloat(my_view, "alpha", 1.0f, 0.0f)
        // 同时播放多个动画
        animationSet?.playTogether(x, y, width, height, alpha)
        // 播放动画持续时间
        animationSet?.duration = 100
        //开始播放
        animationSet?.start()
    }

注意:操作会对组件的属性进行修改,如果需要复用需要回到最初

回到最初的代码:

    // 下面是伪码
    my_view {
        my_view.scaleX = 1.0f
        my_view.scaleY = 1.0f
        my_view.alpha = 1.0f
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心脏dance

如果解决了您的疑惑,谢谢打赏呦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值