Flutter开发之——动画-Lottie

2023-11-19

一 概述

  • Lottie是Aribnb开源的面向Android,iOS等的高性能动画库
  • Flutter原生库不支持Lottie,但是可以通过第三方插件实现Lottie的动画效果

二 导入lottie_flutter插件

2.1 插件地址

Lottie for Flutter:https://github.com/xvrh/lottie-flutter

2.2 如何导入

  • 点击pubv1.0.1,跳转到flutter package lottie页面

  • 打开flutter package lottie后,切换到install选项卡,按照步骤依次执行如下操作

    //cmd终端执行
    flutter pub add lottie
    //pubspec.yaml添加依赖
    dependencies:
      lottie: ^1.0.1
    

三 Lottie素材

https://lottiefiles.com/featured

四 示例-1 简单动画

4.1 下载Lottie文件并添加依赖

  assets:
     - assets/kills-corona.json
     - assets/jumping.zip

4.2 代码(json文件/网络文件/zip文件)

body:ListView(
    children: [
            Lottie.asset('assets/kills-corona.json',width: 150,height: 150),
            Divider(thickness: 2,color: Colors.red,),
            Lottie.network('https://assets2.lottiefiles.com/packages/lf20_pqdnvhfb.json',width: 150,height: 150),
            Divider(thickness: 2,color: Colors.red,),
            Lottie.asset('assets/jumping.zip',width: 150,height: 150),
          ],
        )

4.3 效果图

五 示例-2 控制Lottie动画

5.1 下载Lottie文件并添加依赖

  assets:
     - assets/heart-icon.json

5.2 代码

class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {

  //lottie动画控制器
  AnimationController _controller;
  
  @override
  void initState() {
    super.initState();
    _controller = AnimationController(vsync: this);
  }
 @override
  void dispose() {
    super.dispose();
    _controller.dispose();
  }
   @override
  Widget build(BuildContext context) {
    _getLocalFile();
    return Scaffold(
        appBar: AppBar(title: Text(widget.title), backgroundColor: Colors.orange, centerTitle: true,),
          body:ListView(
          children: [
            Lottie.asset('assets/heart-icon.json',controller:_controller,onLoaded:(composition){
              _controller..duration=composition.duration;
            } ,width: 150,height: 150),
            Divider(thickness: 3,color: Colors.red,),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                RaisedButton(onPressed: (){_controller.reverse();},child: Text("反向"),),
                RaisedButton(onPressed: (){_controller.stop();},child: Text("暂停"),),
                RaisedButton(onPressed: (){_controller.forward();},child: Text("正向"),),
                RaisedButton(onPressed: (){lottieRepeat();},child: Text("重复"))
              ],
            )
          ],
        )
      );
}

5.3 效果图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter开发之——动画-Lottie 的相关文章

随机推荐

  • CentOS搭建vsftp

    VSFTPD Very Secure FTP Daemon 是一个在 CentOS 中常用的 FTP 服务器软件 它是一个轻量级 安全且高性能的 FTP 服务器 基于 RFC 959 协议 并实现了大多数 FTP 协议的功能 VSFTPD
  • ObjectARX学习

    VS2010 VS2012 VS2013 VS2015 VS2017各版本产品激活秘钥 ObjectARX简介 ObjectARX解压包内各文件代表什么 VS ObjectARX SDK AutoCAD对应关系 1 VS2010 VS201
  • Flutter websocket 实现消息推送

    没什么可说的 直接上代码吧 Flutter 中的消息管理工具 class MessageUtils static WebSocket webSocket static num id 0 static void connect Future
  • NGINX实现TCP加密代理

    NGINX实现TCP加密代理 NGINX实现TCP代理 源码安装NGINX 修改配置文件 重启NGINX 测试 实现转发MySql Redis 矿池ssl 以及各种TCP转发 NGINX实现TCP代理 源码安装NGINX NGINX官网源码
  • 数据挖掘(全书的知识点都包括了)

    数据挖掘 第一章 1 什么是数据挖掘 数据挖掘是从数据中 发现其有用的信息 从而帮助我们做出决策 广义角度 数据挖掘是从大量的 不完全的 有噪声的 模糊的 随机的实际应用数据中 提取隐含在其中的 人们事先不知道的 但又是潜在有用的信息和知识
  • Android图片加载内存优化

    Android图片加载内存优化 利用BitmapFactory Options实现图片内存优化 通过设置options inPreferredConfig控制内存占用 通过设置采样率options inSampleSize来减少图片内存占用
  • 使用R语言构建泊松回归模型

    使用R语言构建泊松回归模型 泊松回归是一种广泛应用于计数数据分析的回归模型 它是基于泊松分布的概率模型 用于描述事件在一定时间或空间范围内发生的次数 在本文中 我们将学习如何使用R语言构建泊松回归模型 并提供相应的源代码示例 1 数据准备
  • 详细前后端分离实现facebook第三方登录的全过程(国内一般都是用Android和ios,并且资料稀少)

    实现facebook第三方登录全过程 需求 官方文档与校验工具 详细步骤 1 注册一个facebook的账号 2 登录https developers facebook com 3 点击我的应用 4 创建一个属于自己的应用 5 选择类型和详
  • 免费使用中国知网/查看外文文献—浙江图书馆

    参考https www zhihu com question 20188973 answer 296971317 目录标题 注册 知网 外文文献 注册 支付宝搜索 浙江图书馆 关注并进入浙江图书馆生活号 点击 服务大厅 点击 新用户注册 设
  • 【HBZ分享】数仓里面的概念-宽表-维度表-事实表概念讲解

    数仓概念 1 度量值 可被统计的 比如 次数 销量 营销额 订单表中的下单金额等可以统计的值叫度量值 2 维度表 1 对事实描述的信息 每一张表都对应现实世界中的一个对象或概念 比如 用户 商品 日期 地区维度 2 比如要分析商品的销售情况
  • 2023Mid Journey第一部AI中英双语图文描述关键词辞典.pdf(附下载链接)

    省时查报告 专业 及时 全面的行研报告库 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来 202
  • Kali Linux 通过gnome-tweaks调整原生主题的字体字号

    首先我们需要确认是否安装了 gnome tweaks 因为默认kali Linux使用的是gnome桌面程序 大部分情况下是默认就有的 你只需要确认下是否安装 使用命令行确认 whereis gnome tweaks 出现下图所示就表示有
  • Sidetree - 去中心化身份管理协议

    身份 Identity 管理是区块链应用的核心元素 在一个不可信 匿名的分布计算生态中 要实现去中心化身份管理并不是一件容易的事情 Sidetree是一个基于现有区块链平台的第二层 L2s 协议 专门用于去中心化身份管理 微软最新开源的IO
  • 史上最全Android性能优化方案解析

    Android中的性能优分为以下几个方面 布局优化 网络优化 安装包优化 内存优化 卡顿优化 启动优化 一 布局优化 布局优化的本质就是减少View的层级 常见的布局优化方案如下 在LinearLayout和RelativeLayout都可
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • Spring Boot整合Spring Security并设置自定义登录页面

    准备工作 创建一个Spring Boot项目 注意选择Spring Boot的版本 选择3 0以下的版本 选择如下依赖 等待项目创建成功 项目创建成功之后 添加Mybatis plus的依赖
  • matlab中使用save保存文件, 文件名中有变量

    K 3 filenm K num2str K p num2str K mat save filenm
  • C#中 的泛型

    一 泛型类 1 定义一个泛型类 这个类中某些字段的类型是不确定的 这些类型可以在类构造的时候确定下来 类似于模板 class TestA
  • Ztree组件 支持全选 和反选不影响父级

    ztree ztree v3 3 5 46 main js import ztree ztree v3 js jquery ztree core js import ztree ztree v3 css zTreeStyle zTreeSt
  • Flutter开发之——动画-Lottie

    一 概述 Lottie是Aribnb开源的面向Android iOS等的高性能动画库 Flutter原生库不支持Lottie 但是可以通过第三方插件实现Lottie的动画效果 二 导入lottie flutter插件 2 1 插件地址 Lo