news 2026/4/18 9:28:36

Compose笔记(六十四)--LottieAnimation

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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,可能影响滚动性能

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:18:58

混凝土多边形骨料二维建模:从构思到实现

混凝土多边形骨料二维建模,多边形的边数随机的,可改变骨料面积分数和界面国过渡区厚度,模型的大小也可改变,Comsol with Matlab生成的,得到.mph文件,Comsol直接可以打开,用于后续计算 app&#…

作者头像 李华
网站建设 2026/4/18 7:56:31

鸿蒙原生系列之动画效果(关键帧动画)

鸿蒙原生系列之关键帧动画〇、前言一、动画分类3、关键帧动画3.1、ArkUI_KeyframeAnimateOption3.2、动画时间与播放次数3.3、注册动画分段回调3.4、注册动画结束回调3.5、播放关键帧动画二、动画实现3、关键帧动画3.1、自定义按钮形状3.2、实现页面结构3.3、实现关键帧动画3.4…

作者头像 李华
网站建设 2026/4/18 7:59:55

当算法遇上极限:2025 年计算机科学六大颠覆性突破

【摘要】2025 年多项成果被视为“极限之上的再突破”,重塑算法、AI 与工程实践的边界。引言2025 年对计算机科学从业者并不轻松。许多看了十几年的教科书观点被改写,原先被放进“理论极限”抽屉里的问题重新回到白板,人工智能在多个方向上走到…

作者头像 李华
网站建设 2026/4/18 8:01:10

Docker Compose 部署 MySQL 多实例 日常运维全指南

文章目录 Docker Compose部署MySQL多实例 日常运维全指南 一、基础运维核心指令(容器+MySQL实例) 1. 容器层面运维(Docker Compose操作) (1)实例状态与日志查看 (2)实例启停/重启/删除 (3)进入容器(调试/临时操作) 2. MySQL实例层面运维(数据库操作) (1)登录My…

作者头像 李华
网站建设 2026/4/18 8:08:40

学长亲荐10个AI论文工具,本科生轻松搞定论文格式!

学长亲荐10个AI论文工具,本科生轻松搞定论文格式! AI 工具如何让论文写作更轻松? 在如今的学术环境中,越来越多的本科生开始借助 AI 工具来提升论文写作效率。无论是查找资料、撰写大纲,还是进行内容优化和降重处理&am…

作者头像 李华
网站建设 2026/4/18 7:38:28

msdatrep.ocx损坏丢失 无法运行软件 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华