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. HDFS

    1.HDFS shell 1.0查看帮助 hadoop fs -help <cmd> 1.1上传 hadoop fs -put <linux上文件> <hdfs上的路径& ...

  2. SQL Server调优系列进阶篇(查询优化器的运行方式)

    前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...

  3. Java api 入门教程 之 JAVA的StringBuffer类

    StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...

  4. Java api 入门教程 之 JAVA的IO处理

    IO是输入和输出的简称,在实际的使用时,输入和输出是有方向的.就像现实中两个人之间借钱一样,例如A借钱给B,相对于A来说是借出,而相对于B来说则是借入.所以在程序中提到输入和输出时,也需要区分清楚是相 ...

  5. Unknown class in Interface Builder file 解决方案

    在用swift项目打包Framework时,在项目中使用包时,报错: Unknown class in Interface Builder file... 网上很多解决方案,都不适合我的场景 最终解决 ...

  6. iOS获取手机型号,类似iphone 7这种 含swift和OC

    获取手机设备信息,如name.model.version等,但如果想获取具体的手机型号,如iphone5.5s这种,就需要如下这种 swift: func phonetype () -> Str ...

  7. Idea15/16 配置Tomcat

    1:我这里使用的是Eclipse创建的项目,导出后导入到Idea中使用 2:Idea导入Eclipse项目 3:Idea项目配置(默认快捷键CTRL+SHIT+ALT+S) 3.1 Project 项 ...

  8. S5PV210的内存分配研究分析

    S5PV210内存一般会使用SDRAM和DDR2 (DDR SDRAM),SDRAM的uboot启动网络已经有很多资料的,对于DDR2还有有很多疑惑,如果有错误的地方,请大家一定指出,醍醐灌顶,不胜感 ...

  9. Device ehth0 is not present

    context: 使用virtualbox 克隆了一个新硬盘,然后配为新建虚机的使用,但ifconfig只能发现lo,没有eth0 解决方案: 当前系统是centos6.6 cd /etc/udev/ ...

  10. 微信小程序开发初体验--教你开发小程序

    微信小程序 微信小程序面世以来受到的关注颇多,直到最近我才动手尝试进行了小程序的开发,总体上感觉还是不错的,有一点不适应的就是要摆脱Web APP开发对DOM的操作.在这里我就把我是如何利用API开发 ...