Use the power of kotlin coroutines to execute your android animations
implementation 'com.github.florent37:coroutine-animations:(last version)'
TOTO : ADD VIDEO
launch(UI) {
//fire an alpha animation without suspending coroutine
animation(avatar) { alpha = 0.5f }
//execute a translation animation
//use .join() to suspend the coroutine until the animation end
animation(avatar, startDelay = 1000L) { y = 0f }.join()
//run these animations in parallel
mutableListOf<Job>(
animation(follow) {
top = avatar.y + avatar.height + 16f
},
animation(kotlin) {
left = avatar.x - kotlin.width - 16f
centerY = avatar.centerY()
}
)
.forEach { it.join() } //wait until all animations have finished
}
animation(view, startDelay= , duration=, interpolator=) {
property1 = value1
property2 = value1
}
Animation of Float
values
floatAnimation(avatar, from=1f, to=0.5f){ view, value ->
view.alpha = value
}
Animation of Int
values
intAnimation(avatar, from=0, to=300){ view, value ->
view.x = value
}
.join()
suspend the coroutine until the animation has finished
animation(view1) { property1 = value1 }.join()
animation(view2) { property2 = value2 }.join()
Just use animations as usual coroutine jobs,
if you want to wait for multiple to finish,
add them into a list and call join
on each
val animations = mutableListOf<Job>(
animation(view1) { property1 = value1 }
animation(view2) { property2 = value2 }
)
animations.forEach { it.join() } // wait for all animations to complete
We welcome your contributions to this project.
The best way to submit a patch is to send us a pull request.
To report a specific problem or feature request, open a new issue on Github.
Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/
Copyright 2018 florent37, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.