如何制作随拖放而变化的图标动画

问题描述 投票:0回答:0

我需要制作一个动画,它会根据坐标的移动百分比来改变图标的状态,我做到了但是我的界面变慢了,如果我从中删除图标那么一切都很好,我写得很糟糕但是这是我唯一能做的选择

@Composable
fun RecommendationIcon(
    bookCardController: BookCardController,
    modifier: Modifier,
    size: Dp,
    color: Color,
    icon: Int,
    alpha: Float,
    description: String
) {
    Box(modifier = modifier) {
        Box(contentAlignment = Alignment.Center) {
            Box {
                Image(
                    painter = painterResource(id = icon),
                    contentDescription = description,
                    modifier = Modifier
                        .size(size),
                    colorFilter = ColorFilter.tint(bookCardController.baseIconColor)
                )
            }
            Box {
                Image(
                    painter = painterResource(id = icon),
                    contentDescription = description,
                    modifier = Modifier
                        .size(size + 20.dp)
                        .alpha(alpha / 3),
                    colorFilter = ColorFilter.tint(color)
                )
            }
            Box {
                Image(
                    painter = painterResource(
                        id = icon
                    ),
                    contentDescription = description,
                    modifier = Modifier
                        .size(size)
                        .alpha(alpha),
                    colorFilter = ColorFilter.tint(color)
                )
            }
        }
    }
}

bookCardController 负责改变状态,当卡片移动时改变状态。

所有图标状态都是可动画的

kotlin android-jetpack-compose android-animation
© www.soinside.com 2019 - 2024. All rights reserved.