WuKongAnimation
WuKongAnimation copied to clipboard
一个优雅的android属性动画库。An elegant android property animation library.
一个优雅的代码动画库。支持直接函数调用和链式调用。内部封装Tween来作为动画内核。
Demo展示
github Demo apk下载 码云 Demo apk下载
-
github Demo apk 二维码

-
国内 Demo apk 二维码

图片和动画看不到
码云链接请进入
当前介绍kotlin使用方式
kotlin使用方式请进入
基础功能
-
添加依赖
请在 build.gradle 下添加依赖。
implementation 'cn.wufuqi:WuKongAnimation:1.0.5' -
设置jdk8或更高版本
因为本sdk使用了jdk8才能使用的 Lambda 表达式,所以要在 build.gradle 下面配置jdk8或以上版本。
android { .... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } -
初始化SDK
ActionManager.init(mApplication) // 尽可能早,推荐在Application中初始化 -
runAction方式使用动画 java使用方式请进入
//当前为kotlin代码 view.runAction(Action.fadeIn(time))//执行渐入动画 -
链式动画 java使用方式请进入
//当前为kotlin代码 //执行渐入动画 view.createAction() .fadeIn(time) .start() -
Tween 动画 Tween动画请进入
//当前为kotlin代码 //执行渐入动画 //当前动画不会重复使用建议调用 setExpire(true) TweenManager.builder(runView) .to(mutableMapOf("alpha" to 1)) .time(time) .setExpire(true) .start()
动画使用
接下来介绍 <链式动画> 和 <action动画> 的使用方式。
Tween动画不在当前文档讲述。
透明度渐变动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //执行渐入动画 view.createAction() .fadeIn(time) .start() //执行渐入动画 view.createAction() .fadeOut(time) .start() //指定透明度 view.createAction() .fadeTo(time,0f) //透明度传入 0-1 .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //执行渐入动画 view.runAction(Action.fadeIn(time)) //执行渐出动画 view.runAction(Action.fadeOut(time)) //指定透明度 view.runAction(Action.fadeTo(time,0f))//透明度传入 0-1停止动画
//当前为kotlin代码 view.stopAction()
位移动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //位移到指定位置 view.createAction() .moveTo(time,x,y) .start() //根据当前位置,位移偏移 view.createAction() .moveBy(time,x,y) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //位移到指定位置 view.runAction(Action.moveTo(time,x,y)) //根据当前位置,位移偏移 view.runAction(Action.moveBy(time,x,y))停止动画
//当前为kotlin代码 view.stopAction()
缩放动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //缩放到指定大小 view.createAction() .scaleTo(time,x,y) .start() //根据当前大小,大小偏移 view.createAction() .scaleBy(time,x,y) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //缩放到指定大小 view.runAction(Action.scaleTo(time,x,y)) //根据当前大小,大小偏移 view.runAction(Action.scaleBy(time,x,y))停止动画
//当前为kotlin代码 view.stopAction()
旋转动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.createAction() .rotateTo(time,rotation) .start() //根据当前角度,角度偏移 view.createAction() .rotateBy(time,rotation) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.runAction(Action.rotateTo(time,rotation)) //根据当前角度,角度偏移 view.runAction(Action.rotateBy(time,rotation))停止动画
//当前为kotlin代码 view.stopAction()
旋转X坐标动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.createAction() .rotateXTo(time,rotateX) .start() //根据当前角度,角度偏移 view.createAction() .rotateXBy(time,rotateX) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.runAction(Action.rotateXTo(time,rotateX)) //根据当前角度,角度偏移 view.runAction(Action.rotateXBy(time,rotateX))停止动画
//当前为kotlin代码 view.stopAction()
旋转Y坐标动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.createAction() .rotateYTo(time,rotateY) .start() //根据当前角度,角度偏移 view.createAction() .rotateYBy(time,rotateY) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //旋转到指定角度 view.runAction(Action.rotateYTo(time,rotateY)) //根据当前角度,角度偏移 view.runAction(Action.rotateYBy(time,rotateY))停止动画
//当前为kotlin代码 view.stopAction()
顺序动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //透明度渐入后渐出 view.createSequenceAction() .fadeIn(time) .fadeOut(time) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //透明度渐入后渐出 runView.runAction(Action.sequence(Action.fadeIn(time), Action.fadeOut(time)))停止动画
//当前为kotlin代码 view.stopAction()
同步动画
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //同时执行位移和旋转动画 view.createSpawnAction() .moveBy(time, x, y) .rotateBy(time, rotation) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //同时执行位移和旋转动画 runView.runAction( Action.spawn( Action.moveBy(time, x, y), Action.rotateBy(time, rotation) ) )停止动画 java使用方式请进入
//当前为kotlin代码 view.stopAction()
使用回调
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //渐入后 执行打印 view.createSequenceAction() .fadeIn(time) .callFunc { Log.i(this::class.java.name, "fadeIn 执行完成") } .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //渐入后 执行打印 runView.runAction(Action.sequence(Action.fadeIn(time), Action.callFunc { Log.i(this::class.java.name, "fadeIn 执行完成") }))停止动画
//当前为kotlin代码 view.stopAction()
wait调用
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 //等待1秒后执行渐入 view.createSequenceAction() .wait(1000) .fadeIn(time) .start()停止动画
//当前为kotlin代码 view.stopAction() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 //等待1秒后执行渐入 runView.runAction(Action.sequence(Action.wait(1000),Action.fadeIn(time)))停止动画
//当前为kotlin代码 view.stopAction()
使用缓动函数
缓动函数计算引用 tween.js 的缓动函数。
// adapted from https://github.com/tweenjs/tween.js/blob/9f8c56c4d5856a970b45895bb58cd9d1d56cf3ea/src/Easing.ts
默认的缓动函数为 Easing.linear()
-
链式使用方式 java使用方式请进入
//当前为kotlin代码 view.createSequenceAction() .fadeIn(time,Easing.linear()) //使用线性缓动函数 .start() -
runAction使用方式 java使用方式请进入
//当前为kotlin代码 runView.runAction(Action.fadeIn(time,Easing.linear())) //使用线性缓动函数
设置全局速度
设置全部动画的速度为1倍
//设置全部动画的速度为1倍
TweenManager.speed = 1.0
设置全局暂停动画
设置动画全局暂停
//设置动画全局暂停
TweenManager.pause()
设置全局恢复动画
设置动画全局恢复
//设置动画全局恢复
TweenManager.pause()
检测动画是否正在运行
tween检测是否运行
//kotlin 写法
tween.isRunning
//java写法
tween.isRunning()
action检测是否运行
//kotlin 写法
//只检测单个控件
view.isRunningAction()
//检测整个界面
activity.isRunningAction()
//java写法
//只检测单个控件
RunAction.isRunning(view)
//检测整个界面
RunAction.isRunning(activity)







