动态原理图 协程_AnimatorX - 让你的动画也能享受协程

AnimatorX

动画 + 协程 = Power!

执行单个动画

位移动画

launch {

//沿着X轴正向移动300像素

button.translationX(0f, 300f)

}

launch {

//沿着Y轴正向移动300像素

button.translationY(0f, 300f)

}

launch {

//沿着Z轴正向移动300像素

button.translationZ(0f, 300f)

}

缩放动画

launch {

//沿着X轴缩放,从原始大小放大到3倍大小

button.scaleX(1f, 3f)

}

launch {

//沿着Y轴缩放,从原始大小放大到3倍大小

button.scaleY(1f, 3f)

}

旋转动画

launch {

//沿着button中心旋转180度

button.rotation(0f, 180f)

}

launch {

//沿着X轴旋转

button.rotationX(0f, 180f)

}

launch {

//沿着Y轴旋转

button.rotationY(0f, 180f)

}

渐变动画

launch {

//渐变透明

button.alpha(1f, 0f)

}

组合多个动画

顺序执行,只需要把需要执行的动画按照从上到下的顺序排列即可

launch {

button1.translationX(0f, 300f)

button2.alpha(1.0f, 0.1f)

button3.rotation(0f, 180f)

button4.scaleX(1.0f, 3f)

//依次执行button1的位移动画,button2的渐变动画,button3的旋转动画,button4的缩放动画

}

并列执行,只需要把需要同时运行的动画放进async块中即可

launch {

val anim1 = async { button1.translationX(0f, 300f) }

val anim2 = async { button2.alpha(1.0f, 0.1f) }

val anim3 = async { button3.rotation(0f, 180f) }

val anim4 = async { button4.scaleX(1.0f, 3f) }

awaitAll(anim1, anim2, anim3, anim4)

//这次四个动画将会一起执行

}

最后

除此之外,你还能享受到所有协程的其他特性,例如使用 delay() 对动画进行延时,

使用 repeat() 对动画进行重复播放等等,发挥你的想象力把!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值