【问题标题】:Jetpack Compose Lottie Dynamic Text and ImageJetpack Compose Lottie 动态文本和图像
【发布时间】:2021-09-22 13:41:08
【问题描述】:
我有一个与 LottieAnimation 一起使用的 json 动画,但我的功能需要我在运行时更改动画中的文本和图像。
动画是一个像讲台一样的排名。然后从后端加载动画获胜者文本和图像。所以我需要设置这些值。
现在我知道 TextDelegate 可以处理 Text 问题,但它只适用于 View,因为它是旧方法。它需要构造函数中的视图。我找不到使用 Compose 执行此操作的方法。关于图像,我没有胶水。
有人可以帮我吗?
【问题讨论】:
标签:
android
android-jetpack-compose
lottie
【解决方案1】:
根据您的json 文件结构,您有两种设置图像的方法
- 将使用过的图像放入
src/main/assets/lottieImages。名称应与 json 文件中提及的名称相同,在我的情况下为 img_0.png。
val composition by rememberLottieComposition(
LottieCompositionSpec.RawRes(R.raw.we_accept),
imageAssetsFolder = "lottieImages"
)
- 为关键路径设置位图,就像我从资源中获取它一样,使用动态属性
val bitmap = remember {
BitmapFactory.decodeResource(context.resources, R.drawable.my_image)
}
val dynamicProperties = rememberLottieDynamicProperties(
rememberLottieDynamicProperty(LottieProperty.IMAGE, bitmap, "weaccept.jpg"),
)
LottieAnimation(
composition,
dynamicProperties = dynamicProperties
)
我使用this json 作为示例动画。
至于文字,LottieTextDelegate好像没有移植到compose,建议你creategithub上一个功能请求。