美文网首页动画
AnimatorX - 让你的动画也能享受协程

AnimatorX - 让你的动画也能享受协程

作者: Season_zlc | 来源:发表于2020-02-14 11:35 被阅读0次

AnimatorX

动画 + 协程 = Power!

Github地址

执行单个动画

  • 位移动画
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() 对动画进行重复播放等等,发挥你的想象力把!

Github地址

相关文章

  • AnimatorX - 让你的动画也能享受协程

    AnimatorX 动画 + 协程 = Power! Github地址 执行单个动画 位移动画 缩放动画 旋转动画...

  • 协程

    什么是协程(Coroutine) 简单来说,协程像是轻量级的线程,但并不完全是线程。 首先,协程可以让你顺序地写异...

  • 认识协程

    1、协程是什么? 协程基于线程,它是轻量级线程。协程让异步逻辑同步化,杜绝回调地狱。协程最核心的点就是,函数或者一...

  • Unity协程(Coroutine)

    协程与线程的区别 1、协程不是线程,也不是异步执行的。2、协程和 MonoBehaviour 的 Update函数...

  • 协程

    协程 协程也叫纤程,微线程。协程的本质是一个单线程程序,所以协程不能够使用计算机多核资源。 能够高效的完成并发任务...

  • Kotlin(二十)协程(上下文和调度器)

    1.调度器和线程 协程调度器Dispatchers 可以将协程运行在指定的线程上,也可以将其分派到线程池中,或者让...

  • Android面试Kotlin高阶篇(八)

    问:你对Kotlin的协程理解 答:协程可以看作是一种轻量级的线程,只不过线程有系统调度,而协程由代码来控制。协程...

  • 6 - 协程机制

    协程 Go 从底层就开始支持协程机制,这让它使用协程变得非常容易 下面的代码,使用 SpendTime 作为一个记...

  • Python网络-多任务实现之协程!

    一、协程 协程,又称微线程,纤程。英文名Coroutine。 协程不是进程,也不是线程,它就是一个函数,一个特殊的...

  • python网络-多任务实现之协程

    一、协程 协程,又称微线程,纤程。英文名Coroutine。 协程不是进程,也不是线程,它就是一个函数,一个特殊的...

网友评论

    本文标题:AnimatorX - 让你的动画也能享受协程

    本文链接:https://www.haomeiwen.com/subject/skjdfhtx.html