当前位置: 首页 > news >正文

Compose笔记(六十四)--LottieAnimation

这一节主要了解一下Compose中的LottieAnimation,在Jetpack Compose中,LottieAnimation是一个用于渲染Lottie动画的Composable组件。它由Lottie-Android库提供支持,允许开发者在Android应用中轻松展示复杂的动画效果.简单总结如下:

API:
composition:Lottie 动画的解析结果,包含动画数据
progress:控制动画进度的函数,返回0f(开始)到1f(结束)之间的值。
outlineMasksAndMattes:是否对蒙版和遮罩启用轮廓描边
applyOpacityToLayers:是否将透明度应用到整个图层
enableMergePaths:是否启用After Effects的“合并路径”功能。
renderMode:选择渲染模式,影响动画绘制方式。
dynamicProperties:动态修改动画属性(如颜色、透明度)的回调接口。
asyncUpdates:控制动画帧更新的线程策略。

栗子:

implementation("com.airbnb.android:lottie-compose:6.4.0")
import androidx.compose.foundation.layout.size import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.rememberLottieComposition import com.example.composedemo0802.R @Composable fun LottieDemo() { val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.animation)) LottieAnimation( composition = composition, modifier = Modifier.size(200.dp) ) }
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.size import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.unit.dp import com.airbnb.lottie.RenderMode import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieClipSpec import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.LottieConstants import com.airbnb.lottie.compose.rememberLottieAnimatable import com.airbnb.lottie.compose.rememberLottieComposition import com.example.composedemo0802.R @Composable fun LottieDemo() { val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.animation)) val animatable = rememberLottieAnimatable() var isPlaying by remember { mutableStateOf(true) } LaunchedEffect(isPlaying) { if (isPlaying) { animatable.animate( composition = composition!!, clipSpec = LottieClipSpec.Progress(0f, 1f), speed = 1.5f, iterations = LottieConstants.IterateForever ) } } Column( modifier = Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { LottieAnimation( composition = composition, progress = { animatable.value }, modifier = Modifier.size(300.dp), renderMode = RenderMode.HARDWARE, contentScale = ContentScale.Crop ) Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { isPlaying = !isPlaying }) { Text(if (isPlaying) "Pause" else "Play") } } }

注意:
1 优先使用本地raw资源(而非assets或网络),加载更快更稳定。
2 避免在LottieAnimation内部频繁重建composition,用rememberLottieComposition缓存。
3 不要在列表(LazyColumn)中大量使用高帧率Lottie,可能影响滚动性能

http://www.jsqmd.com/news/154248/

相关文章:

  • HTTP的简介和原理 - saboyou1
  • 2025.12.28博客
  • 智能 Agent 的概念建模与系统特征分析-从传统程序到自主智能体的范式演进
  • vue 甘特图 vxe-gantt table 可视化依赖线的使用,可视化拖拽创建连接线的用法
  • Cloudflare Wrangler CLI 备忘
  • 论文阅读(十二月第四周)
  • 做不出IT毕设,我是废物吗?
  • YOLO模型支持Logstash日志处理管道
  • YOLO模型训练支持CutOut与HideAndSeek图像遮挡增强
  • 2025年三合一过滤洗涤干燥机厂家排名:哈氏合金/搪瓷设备专业制造商推荐 - mypinpai
  • 从“拔网线“看互联网大厂的安全攻防:黑灰产攻击原理与防御实战
  • Next AI Draw.io 核心实现深度分析
  • HTTP的原理 - saboyou1
  • 2025年优质尼龙拖链品牌排行榜,尼龙拖链与其他材质拖链对比优势在哪? - mypinpai
  • 12/28-正式1级打卡题1(课后)
  • YOLO目标检测准确率提升技巧:混合精度训练+GPU支持
  • YOLOv9-SPPF结构详解:为何它更适合边缘GPU设备?
  • 鸿蒙原生系列之动画效果(关键帧动画)
  • 2025郑州西餐培训推荐TOP5权威榜单:甄选靠谱机构避坑指南,新手入门必看 - myqiye
  • YOLO训练日志分析:如何通过GPU利用率诊断瓶颈
  • 使用YOLO做实时检测,你真的选对GPU了吗?
  • YOLO开源项目推荐:这10个高星项目都用了我们的GPU
  • YOLO在冰川变化监测中的应用:遥感图像分析实践
  • 2025黑龙江大理石瓷砖品牌TOP5权威推荐:客厅阳台效果+日常保养全指南 - 工业推荐榜
  • 2025年度哈尔滨卫生间瓷砖行业口碑品牌排行榜 - 工业品牌热点
  • YOLO模型训练支持Custom Loss Function自定义损失函数
  • 混凝土多边形骨料二维建模:从构思到实现
  • 2025年终文心一言GEO优化服务商推荐:聚焦垂直行业案例的5强榜单盘点 - 品牌推荐
  • YOLO模型推理延迟高?可能是你的GPU没配对
  • 2025年终北京GEO优化公司推荐:聚焦垂直行业案例的5家高满意度服务商盘点。 - 品牌推荐