Skip to content

Instantly share code, notes, and snippets.

View sagar-viradiya's full-sized avatar
:octocat:
Focusing

Sagar Viradiya sagar-viradiya

:octocat:
Focusing
View GitHub Profile
inline fun <K: View> K.springAnimationOf(property: FloatPropertyCompat<K>,
func: SpringForce.() -> Unit): SpringAnimation {
val springAnimation = SpringAnimation(this, property)
val springForce = SpringForce()
springForce.func()
springAnimation.spring = springForce
return springAnimation
}
val springAnimation = view.springAnimationOf(DynamicAnimation.TRANSLATION_X, 0f) {
stiffness = STIFFNESS_MEDIUM
dampingRatio = DAMPING_RATIO_MEDIUM_BOUNCY
}
inline fun <K: View> K.springAnimationOf(property: FloatPropertyCompat<K>,
finalPosition: Float,
func: SpringForce.() -> Unit): SpringAnimation {
val springAnimation = SpringAnimation(this, property, finalPosition)
springAnimation.spring.func()
return springAnimation
}
@sagar-viradiya
sagar-viradiya / SpringAnimationSpringForce.kt
Last active October 2, 2018 08:26
Creating SpringAnimation with SpringForce
val springForce = SpringForce(0f)
.setStiffness(SpringForce.STIFFNESS_MEDIUM)
.setDampingRatio(SpringForce.DAMPING_RATIO_HIGH_BOUNCY)
val springAnimation = SpringAnimation(view, DynamicAnimation.TRANSLATION_X)
.setSpring(springForce)
@sagar-viradiya
sagar-viradiya / SpringAnimationExtUsage.kt
Created October 2, 2018 08:21
Using SpringAnimation extension
val springAnimation = view.springAnimationOf(DynamicAnimation.TRANSLATION_Y)
val springAnimation = view.springAnimationOf(DynamicAnimation.TRANSLATION_Y, 0f)
@sagar-viradiya
sagar-viradiya / SpringAnimationExt.kt
Last active October 30, 2018 18:40
Extension function for creating SpringAnimation
fun <K> K.springAnimationOf(
property: FloatPropertyCompat<K>,
finalPosition: Float = Float.NaN
): SpringAnimation {
return if (finalPosition.isNaN()) {
SpringAnimation(this, property)
} else {
SpringAnimation(this, property, finalPosition)
}
}
@sagar-viradiya
sagar-viradiya / FlingAnimationExtension.kt
Last active October 30, 2018 18:41
Extension on FlingAnimation
fun <K> K.flingAnimationOf(property: FloatPropertyCompat<K>): FlingAnimation {
return FlingAnimation(this, property)
}
@sagar-viradiya
sagar-viradiya / SpringAnimationExtensionUsage.kt
Last active October 31, 2018 05:08
Usage of SpringAnimation extension function
val springAnimation = SpringAnimation(view, DynamicAnimation.TRANSLATION_X)
.withSpringForceProperties {
finalPosition = 0f
stiffness = SpringForce.STIFFNESS_MEDIUM
dampingRatio = SpringForce.DAMPING_RATIO_HIGH_BOUNCY
}
@sagar-viradiya
sagar-viradiya / SpringAnimationExtension.kt
Created October 1, 2018 17:59
Extension for attaching SpringForce to SpringAnimation
inline fun SpringAnimation.withSpringForceProperties(func: SpringForce.() -> Unit): SpringAnimation {
if (spring == null) {
spring = SpringForce()
}
spring.func()
return this
}
@sagar-viradiya
sagar-viradiya / SpringAnimation.kt
Last active October 31, 2018 05:11
Attaching SpringForce to SpringAnimation later
val springForce = SpringForce(0f)
.setStiffness(SpringForce.STIFFNESS_MEDIUM)
.setDampingRatio(SpringForce.DAMPING_RATIO_HIGH_BOUNCY)
val springAnimation = SpringAnimation(view, DynamicAnimation.TRANSLATION_X).setSpring(springForce)