一、集成

主工程 build.gradle加入

dependencies {

"com.airbnb.android:lottie:2.7.0"//lottie

}

为什么用2.7.0版本?

因为2.8.0及以上需要项目支持androidX

且2.7.0已经能满足日常需求,包体积更小(159kb)

二、用法

1、布局文件中使用LottieAnimationView控件

android:id="@+id/lt_gift"

android:layout_width="200dp"

android:layout_height="200dp"

app:lottie_autoPlay="false"

app:lottie_fileName="lottie/gift.json"

app:lottie_loop="true"

app:lottie_repeatMode="restart"/>

lottie_autoPlay:自动播放动画(默认false)

lottie_fileName:app/src/main/assets目录下的json文件名(json文件可以直接放到assets目录下,比如“gift.json”,也可新建子目录,比如"lottie/gift.json")

lottie_loop:循环播放(默认false)

lottie_repeatMode:循环模式(默认restart)

2、调用playAnimation播放动画

LottieAnimationView ltGift = findViewById(R.id.lt_gift);

ltGift.setAnimation("lottie/gift.json");//代码设置动画文件

ltGift.playAnimation();//开始播放动画,首次播放会有短暂延迟,因为加载动画文件需要时间

3、监听动画播放进度addAnimatorUpdateListener

ltGift.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

float progress = animation.getAnimatedFraction();//播放进度

// TODO:

}

});

addAnimatorListener可以监听动画开始、结束、取消、重复等事件

4、设置动画进度setProgress

LottieAnimationView ltGift = findViewById(R.id.lt_gift);

ltGift.setAnimation("lottie/gift.json");

ltGift.setProgress(0.5f);//不需要调用playAnimation,可直接展示该进度的动画效果

5、监听json文件加载完成addLottieOnCompositionLoadedListener

ltGift.addLottieOnCompositionLoadedListener(new LottieOnCompositionLoadedListener() {

@Override

public void onCompositionLoaded(LottieComposition composition) {

//此时渲染了动画第一帧

}

});

所有lottie动画最终都会生成一个LottieComposition对象,该对象包含了动画的所有信息,包括动画时长、宽高、起始帧、图层列表等

6、缓存机制LottieCompositionCache

运行时缓存,内部使用LruCache实现,缓存大小为10MB

自测200KB以内的动画文件,首次加载需要600ms左右,缓存加载只需要100ms

自动缓存,不需要手动控制

7、硬件加速useHardwareAcceleration

ltGift.useHardwareAcceleration(true);//硬件加速开关(默认false,使用软件加速)

8、从url加载动画setAnimationFromUrl

ltGift.setAnimationFromUrl("");//将json文件下载到本地,再进行渲染,需要考虑耗时长的情况

android lottie字体json,Android Lottie集成及基本用法相关推荐

  1. android lottie字体json,android:Lottie--让Android动画更优雅

    一. Lottie简介 Lottie是什么? Lottie是Airbnb开源的一个支持 Android.iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库. Lottie ...

  2. android lottie字体json,Android 动画深入Lottie

    image.png 如果现在有需求,让这个小人做出拳击动作你应该如何做? 传统方法会写一大堆的路径值做路径动画,不好调试代码臃肿并且麻烦,那么有简单方法吗 有! SVG 和 Lottie 可以胜任 S ...

  3. android lottie字体json,lottie-android

    build.gradlefile:dependencies { compile 'com.airbnb.android:lottie:1.0.1' } lottie 支持 Jellybean (API ...

  4. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析

    从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,本文分析主要Lottie把json文 ...

  5. android开发字体样式,Android开发中修改程序字体的样式

    Android提供三种字体:"Sans","serif"和"monospace". 1.在Android XML文件中设置字体 可以采用an ...

  6. android roboto字体下载,Android字体设置及Roboto字体使用方法

    本文实例讲述了Android字体设置及Roboto字体使用方法.分享给大家供大家参考.具体分析如下: 一.自定义字体 1.android Typeface使用TTF字体文件设置字体 我们可以在程序中放 ...

  7. Android通知栏字体大小,Android通知栏介绍与适配总结(上篇)

    此文已由作者黎星授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知 ...

  8. android 自定义字体 ttf,Android APP支持自定义字体

    情景:需要为整个应用替换自定义字体. Android对于文字的字体设置主要是通过以下两个对象 FontFamily.Typeface 在XML文件中设置单个字体: android:id="@ ...

  9. android程序字体大小,Android如何动态调整应用字体大小详解

    前言 为什么要动态设置字体大小?由于项目面对的是中老年客户项目中自带的字体无法满足客户需求. Android应用字体大小默认随系统设置的字体大小而变化,但您可能不希望您的应用字体大小随系统设置变化,想 ...

  10. android程序字体大小,Android 动态调整应用字体大小

    Android应用字体大小默认随系统设置的字体大小而变化,但您可能不希望您的应用字体大小随系统设置变化,想要自己控制,例如微信.本文简单介绍一下如何实现应用字体大小动态调整而不是依赖系统设置 字体大小 ...

最新文章

  1. 清华大学人工智能研究院自然语言处理与社会人文计算研究中心成立,重磅推出两场前沿学术报告和三项特色开源成果...
  2. python导包顺序_2019-03-21 python导入包以及Python程序执行顺序理解
  3. mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)...
  4. MongoDB整库备份与还原以及单个collection备份、恢复方法
  5. java个人介绍代码_个人项目WC(Java)
  6. SolidEdge如何自动标注尺寸
  7. 如何正确区分cssci和核心期刊
  8. setCharacterEncoding和setContentType
  9. UI基础:UILabel.UIFont
  10. Python使用扩展库numpy计算矩阵加权平均值
  11. 好时光·宝髻偏宜宫样 [唐] 李隆基
  12. Python:random库使用方法
  13. Dubbo -- 系统学习 笔记 -- 示例 -- 只订阅
  14. 【开发工具】Window下MinGW下载安装gcc,g++编译器
  15. 哈哈,我把熊猫烧香病毒扒了!
  16. UDE2021未来生活领袖峰会:视像行业发展趋势研究报告发布
  17. Hexo-Theme-Sakura 实践记录
  18. Nacos 修改密码
  19. 将字符串转化为字符串数组
  20. 开发者工具绕过前端debuger

热门文章

  1. 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
  2. Ubuntu20.04配置mysql环境及远程连接
  3. 最短路之floy算法
  4. oracle11g Rac Bond,Oracle11g搭建RAC步骤..doc
  5. NYOJ954--N的阶乘的二进制表示最低位的1的位置
  6. matlab绘制等间距同心圆,CDR做出等距离的同心圆的四种方法
  7. jquery实现截取pc图片_html+jquery实现简单图片裁剪
  8. 中计算均方误差_为什么分类问题不使用均方误差作为代价函数
  9. antv g2字体阴影_antv/G2 v4使用遇坑之旅
  10. nginx 与fastcgi通信方式