[UWP]在UWP平台中使用Lottie动画
最近QQ影音久违的更新了,因为记得QQ影音之前体验还算不错(FFmepg的事另说),我也第一时间去官网下载体验了一下,结果发现一些有趣的事情。

是的,你没看错,QQ影音主界面上这个动画效果是使用Lottie动画实现的!
这让我大为惊奇,我对Lottie了解还算是比较多的,但是Lottie常见应用于移动端APP和网页,在传统桌面端见到还是第一次。
那就趁这个机会,来分享点关于Lottie动画的东西吧!
Lottie动画的UWP实现
Lottie是Airbnb开源的一个面向IOS、Android、React Native的动画库,它可以解析保存为json格式的由Bodymovin导出的使用AE制作的动画效果,并在移动端/Web端呈现它们!官方支援平台为IOS、Android和React Native,很遗憾,并不包含UWP平台。
但是,这并不是说UWP平台无法使用Lottie动画了。Lottie动画在UWP平台上有两套非常棒的实现:
- Lottie-Windows:这是由微软官方开发的一套Lottie实现,使用的是Composition Api,性能表现很棒。另外还提供一个易用的LottieViewer示例应用,不仅可以预览Lottie动画,还可以将Lottie文件转为C# Composition动画类(.cs文件)保存,将这个文件引用到你的项目中即可使用这个动画类播放动画,黑科技!但是美中不足的是,由于刚刚推出预览版,使用了更新的API,只支持Win10 1809 (17763)及以后的系统版本,且稳定性欠佳,需要等待正式版本。
- LottieUWP:这是由azchohfi(维护Windows Community Toolkit的作者之一,供职于微软)使用Win2D实现的一套Lottie实现,源代码移植自Lottie官方的Android版本(我查看源代码了解到的,项目中某些方法还保留了Android项目的注释),现在已经基本进入稳定维护阶段,现阶段更加推荐使用。
我在开发中已经使用LottieUWP一段时间了,基本可以满足使用,并且我也向LottieUWP项目贡献过一点bugfix代码。现阶段我更推荐大家使用LottieUWP来实现相关需求。
长期的话,我更看好Lottie-Windows项目,毕竟微软官方团队维护,性能也更好,只不过大家需要给它一点时间,让它完善稳定下来,到时候系统版本要求应该也不是问题了
[UWP]在UWP平台中使用Lottie动画的更多相关文章
- 详解 UWP (通用 Windows 平台) 中的两种 HttpClient API
UWP (通用 Windows 平台) 应用开发者在构建通过 HTTP 与 Web 服务或服务器断点交互的应用时,有多种 API 可以选择.要在一个托管 UWP 应用中实现 HTTP 客户端角色,最常 ...
- 【Flutter 3-5】Flutter进阶教程——在Flutter中使用Lottie动画
作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) Lottie动画 在移动开发中总是需要展示一些动画特效,作为程序员的我们并不是很擅长用代码做动画,即便是有些动画可以实现,在跨平台的过 ...
- [UWP]缓存Lottie动画帧
在上一篇博文<[UWP]在UWP平台中使用Lottie动画>中我简单介绍了一下LottieUWP项目以及如何使用它呈现Lottie动画,这篇文章里我们来讲点进阶的东西--缓存Lottie动 ...
- UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...
- WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件
在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项 ...
- [UWP]在应用开发中安全使用文件资源
原文:[UWP]在应用开发中安全使用文件资源 在WPF或者UWP应用开发中,有时候会不可避免的需要操作文件系统(创建文件/目录),这时候有几个坑是需要大家注意下的. 创建文件或目录时的非法字符检测 在 ...
- uwp - 做一个相对炫酷的动画按钮/按钮动画
原文:uwp - 做一个相对炫酷的动画按钮/按钮动画 看腻了系统自带的button animation何不尝试下自定义一个较为炫酷的动画顺便提升用户体验.效果图: 动画分为几个部分,分别是:内圆从中心 ...
- 一种快速刷新richedit中内嵌动画的方法的实现
在IM中使用动画表情是一种非常有趣的方式,然而选择一种合适的方式来实现却并不容易. 一般来说,除了自己去实现一个富文本控件,目前主要的解决方案有3种: 1.使用浏览器做容器. 2.使用QT提供的Ric ...
- Android之Lottie动画详解
文章大纲 一.Lottie介绍二.Lottie实战三.项目源码下载四.参考文章 一.Lottie介绍 1. 什么是Lottie Lottie是Android和iOS的移动库,用于解析Adobe ...
随机推荐
- Web缓存机制
Web 缓存的出现主要是为了弥补cookie带来的一些局限,当数据严格控制在客户端时,可以不用通过HTTP来持续得将数据发给服务器. 主要使用比较多的就是sessionStorage和localSto ...
- leetcode19
class Solution { public: ; ; ListNode* removeNthFromEnd(ListNode* head, int n) { ; ListNode* node = ...
- http-cookie、session、Token
无状态 cookie技术的发展 客户端发送请求登录系统 Set-Cookie管理Cookie信息并且返回给客户端 拿着返回的cookie请求Server cookie 管理session 发送登录信 ...
- win7频繁提示资源管理器已停止工作解决办法
方法一,重新启动资源管理器,右键点击桌面下方的“任务栏”空白区,在弹出的菜单栏中选择“任务管理器”. 进入任务管理器,点击上方的“文件”,选择新建任务. 在弹出的对话框中,输入explorer ...
- 28.Hibernate-HQL查询.md
目录 1.概述 2.HQL实例 3.Criteria 查询 4.SQL本地查询 5.分页 1.概述 1)Get/load主键查询 2)对象导航查询 3)HQL查询, Hibernate Query l ...
- Spring使用Jackson处理json数据
1.搭建SpringMVC+Spring环境 2.配置web.xml.SpringMVC-config.xml <?xml version="1.0" encoding=&q ...
- selenium之 chromedriver与chrome版本映射表(转载)
chromedriver版本 支持的Chrome版本 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v58-60 v2.29 v5 ...
- vw, vh视区覆盖和自适应图片
CSS .wrap{width:100vw;height:100vh;background: rgba(0,0,0,0.3);position: fixed;top:0;left:0;text-a ...
- c#mysql批量更新的两种方法
总体而言update 更新上传速度还是慢. 1: 简单的insert 速度稍稍比MySqlDataAdapter慢一点 配合dapper 配置文件 <?xml version="1 ...
- [模板]LCA
洛谷P3379 注意:不能与LCA搞混(打久了就会发现两个还是有很大区别的) 位运算一定要加括号! for循环从0到logn还是从logn到0看当前的状态更适合哪种 第53行预处理一定要注意!(因为没 ...