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多种动画让你的应用动起来的更多相关文章

  1. 实用CSS3的transform实现多种动画效果

    查看效果:http://keleyi.com/a/bjad/b6x9q8gs.htm 以下是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4. ...

  2. WPF中的动画——(四)缓动函数

    缓动函数可以通过一系列公式模拟一些物理效果,如实地弹跳或其行为如同在弹簧上一样.它们一般应用在From/To/By动画上,可以使得其动画更加平滑. var widthAnimation = new D ...

  3. Lottie开源库实现Android动画效果

    Lottie简介 Lottie是一个支持Android.iOS.React Native,并由Adobe After Effects制作aep格式的动画,然后经由bodymovin插件转化渲染为jso ...

  4. Core Animation之多种动画效果

    前面介绍了Core Animation基础知识,还有CALayer的简单使用,最终还是有要动画的滴,这里列出几个动画效果,参考下能加深对Core Animation的认识和理解 1.把图片移到右下角变 ...

  5. iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码

    iOS精选源码 以tableview的section为整体添加阴影效果/ta'b'le'vi'e'w顶部悬浮.... 一个可以轻松应用自定义过滤器的视频捕获框架. 基于UITableView的组件,旨 ...

  6. 一行代码实现自定义转场动画--iOS自定义转场动画集

    WXSTransition 这款非常不错,力推 这是作者源码简书地址: http://www.jianshu.com/p/fd3154946919 这是作者源码github地址 https://git ...

  7. Vue学习笔记【19】——Vue中的动画(使用第三方 CSS 动画库)

    导入动画类库:  <link rel="stylesheet" type="text/css" href="./lib/animate.css& ...

  8. JQuery插件之Animate.css和 jquery-aniview

    Animate.css 一款强大的预设css3动画库 简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(fl ...

  9. animate.css – 齐全的CSS3动画库

    animate.css – 齐全的CSS3动画库 演 示 下 载   简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounc ...

随机推荐

  1. cdh集群数据恢复

    CDH 数据库 磁盘坏了  所有集群配置 都没了    而且 还没备份  ....    元数据 还在  cdh  软件配置 和  安装软件 不能用了 下载 apache hadoop   重新配置  ...

  2. 今天说一下 Group by 这个东西

    group by 这个关键字,这个语句太平凡了~基本上只要有报表的地方,就会有它的身影. 常规用法就是 INSERT INTO #TypeValue ( TypeID, Col2 ) , N , N ...

  3. spring服务定位器类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:通过持有的Spring应用场景ApplicationContext,可在任何地方获取bean. 1. 服务定位器类:S ...

  4. Ajax请求利用jsonp实现跨域

    跨域: js有一个同源限制,简单说来源不一样的话就无法相互间交互.那么怎么算来源不一样呢, 举个例子:浏览器访问-->服务器A--->得到页面A---页面A中的js脚本只能访问服务器A的资 ...

  5. [Computer structure] Written Notes

    To some extent, taking notes using my pen and pencil is also an interesting thing! bingo! ~ 2016-03- ...

  6. RSA Study

    These days I study the RSA Algorithm. It is a little complex, but not very. Also, my study has not f ...

  7. 【2016-10-12】【坚持学习】【Day3】【命令模式】

    今天学习了第二个模式,命令模式 例子: 开关==>发送者 电线==>命令传输 电灯==>接受者 一个开关可以通过不同电线控制不同电器, 结构: 发送者类, 抽象命令类 具体命令类:继 ...

  8. 【HTML】嵌入图像

    img元素允许我们在HTML文档里嵌入图像. 要嵌入一张图像需要使用src和alt属性,代码如下: <img src="../img/example/img-map.jpg" ...

  9. sqlmap小白操作

    转载地儿:http://blog.csdn.net/zgyulongfei/article/details/41017493 对于网络安全人员来说,掌握渗透工具的使用方法是一项必备的技能.然而,一个没 ...

  10. NOIP模拟赛 最大匹配

    问题描述 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边.     图的“匹配”是指这个图的一个边集,里面的边两两不存在公共端点. ...