You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中在图片上添加Lottie动态文字贴纸并保存至相册

Android平台Lottie动态贴纸叠加图片并导出方案

结论

完全可以实现将Lottie动画作为动态文字贴纸叠加在图片上,并导出为视频或GIF格式。你提到的先将Lottie转存为本地GIF再用FFmpeg处理的思路是可行且易落地的最优方案之一。

具体实现步骤

1. 把Lottie动画转成GIF文件

在Android上可通过两种方式生成GIF:

  • 用Lottie官方扩展:引入lottie-gif依赖后,直接调用LottieAnimationView.createGif()方法,指定输出路径和参数(帧率、尺寸)即可生成带透明通道的GIF。
  • 手动逐帧渲染:通过LottieDrawable获取每一帧的Bitmap,再用GIF编码库(如android-gif-drawable)将Bitmap序列拼接成GIF,保存到APP内部存储或外部私有目录。

注意:要保证GIF的尺寸、帧率和后续处理的背景图片匹配,避免拉伸或速度异常。

2. FFmpeg叠加处理与导出

导出为GIF

假设背景图片路径为/sdcard/input.jpg,Lottie生成的GIF路径为/sdcard/lottie_sticker.gif,输出GIF路径为/sdcard/output.gif,命令如下:

ffmpeg -loop 1 -i /sdcard/input.jpg -i /sdcard/lottie_sticker.gif -filter_complex "[0:v][1:v]overlay=x=100:y=100:shortest=1" -delay 10 -y /sdcard/output.gif

参数解释:

  • -loop 1:让静态背景图片循环播放,匹配GIF的时长
  • overlay=x=100:y=100:设置贴纸在图片上的位置(x/y为左上角偏移量)
  • shortest=1:输出时长取两个输入中较短的(即GIF的时长)
  • -delay 10:控制GIF播放速度(单位1/100秒,10表示每帧停留100ms)

导出为MP4视频

如果需要导出视频,命令调整为:

ffmpeg -loop 1 -i /sdcard/input.jpg -i /sdcard/lottie_sticker.gif -filter_complex "[0:v][1:v]overlay=x=100:y=100:shortest=1" -c:v libx264 -r 25 -y /sdcard/output.mp4

参数解释:

  • -r 25:设置视频帧率为25fps,适配多数设备
  • -c:v libx264:使用H.264编码,保证视频兼容性和压缩率

3. 保存到系统相册

处理完成后,需要触发系统媒体扫描:

  • 通过MediaScannerConnection.scanFile()方法扫描生成的文件,让系统相册识别;
  • 或者直接将文件写入MediaStore.Images.Media或MediaStore.Video.Media的公共目录,无需额外扫描。

优化提示

  • 若Lottie动画有透明效果,确保导出的GIF保留Alpha通道,FFmpeg的overlay滤镜会自动识别透明区域,无需额外配置。
  • 追求更高画质的话,可以将Lottie转成PNG序列帧,再用FFmpeg叠加序列帧,相比GIF能减少画质损失。
  • Android上集成FFmpeg建议使用预编译库(如mobile-ffmpeg),省去自行编译的兼容性麻烦。

内容的提问来源于stack exchange,提问作者Aleksakb24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:01:47