【开源】LLMAnimator 60多种动画让你的应用动起来
github: https://github.com/brookshi/LLMAnimator ,欢迎star/fork
之前做android的时候需要给应用加些动画效果,在github上找到这个库:
https://github.com/daimajia/AndroidViewAnimations,用起来挺方便,效果也不错。
现在做uwp,想要加些动画就想到这个库,于是开发了LLMAnimator,算是上面android库的uwp移植版本。
先看效果:

用起来也很简单:
Animator.Use(AnimationType.Bounce) //使用哪种动画
.SetDelay(TimeSpan.FromSeconds()) //延迟执行,默认立即执行
.SetDuration(TimeSpan.FromMilliseconds()) //动画播放时间,每个动画都有自己的默认时间,一般不需要设置
.SetRepeatBehavior(new RepeatBehavior()) //重复次数,默认1次
.PlayOn(target); //动画目标 Animator.Use(AnimationType.Bounce).PlayOn(target); // 一般这样就好了,简单
动画类型都在AnimationType里面,有63种,算是包括各种常用的了,免去了自己创建动画一个一个写storyboard的痛苦。
public enum AnimationType
{
Bounce,
Flash,
Pulse,
RubberBand,
Shake,
StandUp,
Swing,
Tada,
Wave,
Wobble, BounceIn,
BounceInDown,
BounceInUp,
BounceInLeft,
BounceInRight, FadeIn,
FadeInDown,
FadeInUp,
FadeInLeft,
FadeInRight, FadeOut,
FadeOutDown,
FadeOutUp,
FadeOutLeft,
FadeOutRight, FlipInX,
FlipInY, FlipOutX,
FlipOutY, RotateIn,
RotateInDownLeft,
RotateInDownRight,
RotateInUpLeft,
RotateInUpRight, RotateOut,
RotateOutDownLeft,
RotateOutDownRight,
RotateOutUpLeft,
RotateOutUpRight, SlideInDown,
SlideInUp,
SlideInLeft,
SlideInRight, SlideOutDown,
SlideOutUp,
SlideOutLeft,
SlideOutRight, ZoomIn,
ZoomInDown,
ZoomInUp,
ZoomInLeft,
ZoomInRight, ZoomOut,
ZoomOutDown,
ZoomOutUp,
ZoomOutLeft,
ZoomOutRight, Hinge,
RollIn,
RollOut,
DropOut,
Landing,
TakingOff,
}
如果有其他动画需求,也可以留言。
实现也很简单,以Bounce为例:
public class BounceAnimation : AnimationBase
{
public BounceAnimation()
{
Duration = TimeSpan.FromMilliseconds();
} public override IAnimation PlayOn(UIElement target, Action continueWith)
{
var transform = Utils.PrepareTransform(target, typeof(CompositeTransform)); var storyboard = PrepareStoryboard(continueWith); AddAnimationToStoryboard(storyboard, transform, CreateAnimation(), "TranslateY"); storyboard.Begin(); return this;
} Timeline CreateAnimation()
{
DoubleAnimationUsingKeyFrames frames = new DoubleAnimationUsingKeyFrames();
var firstTimeSpan = TimeSpan.FromMilliseconds(Duration.TotalMilliseconds / ); frames.KeyFrames.Add(new EasingDoubleKeyFrame()
{
EasingFunction = new SineEase()
{
EasingMode = EasingMode.EaseIn
},
KeyTime = KeyTime.FromTimeSpan(firstTimeSpan),
Value = -,
});
frames.KeyFrames.Add(new EasingDoubleKeyFrame()
{
EasingFunction = new BounceEase()
{
Bounces = ,
Bounciness = 1.3,
EasingMode = EasingMode.EaseOut
},
KeyTime = KeyTime.FromTimeSpan(Duration),
Value = ,
}); return frames;
}
}
和大家平常创建动画的过程一样,这个库只是把常用的动画都集合在一起,这样用起来很方便,希望大家喜欢。
【开源】LLMAnimator 60多种动画让你的应用动起来的更多相关文章
- 实用CSS3的transform实现多种动画效果
查看效果:http://keleyi.com/a/bjad/b6x9q8gs.htm 以下是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. ...
- WPF中的动画——(四)缓动函数
缓动函数可以通过一系列公式模拟一些物理效果,如实地弹跳或其行为如同在弹簧上一样.它们一般应用在From/To/By动画上,可以使得其动画更加平滑. var widthAnimation = new D ...
- Lottie开源库实现Android动画效果
Lottie简介 Lottie是一个支持Android.iOS.React Native,并由Adobe After Effects制作aep格式的动画,然后经由bodymovin插件转化渲染为jso ...
- Core Animation之多种动画效果
前面介绍了Core Animation基础知识,还有CALayer的简单使用,最终还是有要动画的滴,这里列出几个动画效果,参考下能加深对Core Animation的认识和理解 1.把图片移到右下角变 ...
- iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码
iOS精选源码 以tableview的section为整体添加阴影效果/ta'b'le'vi'e'w顶部悬浮.... 一个可以轻松应用自定义过滤器的视频捕获框架. 基于UITableView的组件,旨 ...
- 一行代码实现自定义转场动画--iOS自定义转场动画集
WXSTransition 这款非常不错,力推 这是作者源码简书地址: http://www.jianshu.com/p/fd3154946919 这是作者源码github地址 https://git ...
- Vue学习笔记【19】——Vue中的动画(使用第三方 CSS 动画库)
导入动画类库: <link rel="stylesheet" type="text/css" href="./lib/animate.css& ...
- JQuery插件之Animate.css和 jquery-aniview
Animate.css 一款强大的预设css3动画库 简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(fl ...
- animate.css – 齐全的CSS3动画库
animate.css – 齐全的CSS3动画库 演 示 下 载 简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounc ...
随机推荐
- 好久没有写博客了,发现Live Writer也更新了
最近由于工作变动,工作内容和心态也有所变化,所以很久没有写博客了,而且我的开源项目深蓝词库转换也很近没有更新了.今天打开LiveWriter发现居然有新版本,于是果断更新.现在新的LiveWriter ...
- DOS命令:IIS安装与卸载
//IIS7完全安装 start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticCont ...
- 损失函数(Loss Function)
转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 线性回归中提到最小二乘损失函数及其相关知识.对于这一部分知识不清楚的同学可以参考上一篇文章<线性回归 ...
- Python序列化之json与pickle
1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
- JVM探索之——内存管理(一)
本系列的第一篇文章,预计本系列最后面会有两三个案例. Java与C.C++不一样Java不需要Coder进行手动内存管理,而这一切都交给JVM进行自动内存管理,这从某种程度上来说也减轻了我们Coder ...
- Python搜索目录下指定的文件,并返回绝对路径(包括子目录)
#!/usr/bin/python #coding=UTF-8 #FileName:search.py #文件搜索 import os; import sys; returnList = []; de ...
- hadoop日常运维与升级总结
日常运维 升级 问题处理方法 日常运维 进程管理 由于配置文件的更改,需要重启生效, 或者是进程自己因某种致命原因终止, 或者发现进程工作出现异常等情况下,需要进行手动进程的关闭或启动, 或者是增删节 ...
- continue break return的区别
1.continue 语句的作用 终止本次循环的执行,即跳过当前一次循环中continue语句后尚未执行的语句,然后进行下一次循环条件的判断. 2.break 语句的作用 (1)当 ...
- 如何用ZBrush做人体造型雕刻
之前我们用ZBrush®中的Curves和Insert笔刷快速创建模型的躯干.四肢以及手指.经过老师耐心的讲解我们也收获了很多,知道了创建模型的流程和雕刻技巧.今天的ZBrush教程将结合一些新的雕刻 ...
- 3-2-1-0-GO
正式开始第3份工作,入职第2天,午饭后与Team Leader谈了1个多小时,很有收获. 首先,不同的公司有不同的企业文化和规章制度,需要尊重且入乡随俗,尽快学习并适应,争取早日融入公司和团队当中去, ...