``` enum class CircleStatus { Shrinking,Growing} v...
# android
e
Copy code
enum class CircleStatus { Shrinking,Growing}
val sizeState = FloatPropKey()

@Composable
fun getSizeTransitionDefinition(mutableState: MutableState<CircleStatus>): TransitionState {
    return transition(
        definition = sizeTransitionDefinition(),
        initState = CircleStatus.Shrinking,
        toState = CircleStatus.Growing
    )
}

fun sizeTransitionDefinition(): TransitionDefinition<CircleStatus> {
    return transitionDefinition {
        state(CircleStatus.Shrinking) { this[sizeState] = 50f }
        state(CircleStatus.Growing) { this[sizeState] = 175f }

        transition(fromState = CircleStatus.Shrinking, toState = CircleStatus.Growing) {
            sizeState using repeatable(
                iterations = Infinite,
                animation = tween(
                    easing = LinearEasing,
                    durationMillis = 1000
                )
            )
        }
        transition(fromState = CircleStatus.Growing, toState = CircleStatus.Shrinking) {
            sizeState using repeatable(
                iterations = Infinite,
                animation = tween(
                    easing = LinearEasing,
                    durationMillis = 1000
                )
            )
        }
    }
}
ScrollableColumn {

    val animation = getSizeTransitionDefinition(state)[sizeState]

    Canvas(modifier = Modifier.preferredSize(80.dp)) {
        drawCircle(color = Color.Red, animation)
    }