新更新了一个叫做DynamicAnimation(动力学动画??)的类,其中他有一个子类叫做SpringAnimation,官方文档是这样说的:

···

···

粗略的翻译一下:

这个类是基于物理学动画的鸡肋,能够管理动画的生命周期,例如start()和cancel(),同时还能处理所有子类动画的常用设置。

举个简单的栗子,DynamicAnimation支持添加DynamicAnimation.OnAnimationEndListener 和DynamicAnimation.OnAnimationUpdateListener这种可以观察到重要的动画事件的回调,任何子类DynamicAnimation可以使用setStartValue(float)和setStartVelocity(float)设置初始条件。

那么也就是说我们可以通过这个新更新出来的动画库来实现一些更加符合物理学的动画。

SpringAnimation简介

上面已经介绍了SpringAnimation的父类,那么这个SpringAnimation又是个什么鬼呢?春天动画?并不是,而是弹性动画。官方文档是这样说的:

介绍完毕,那我们就来创建一个最简单的SpringAnimation。

使用SpringAnimation

1.引包

2.创建默认的SpringAnimation

这就搞定了,这里面第一个参数是释放动画的view,第二个参数是动画类型,第三个是float类型的被作用对象最终位置。

3.预先设置SpringForce来驱动动画

setDampingRatio(@FloatRange(from = 0.0) float dampingRatio)是用来设置阻尼的,这个参数不能够小于0,否则会报错。当它的值是0的时候 ,动画就会不停的弹,当值大于1的时候,动画靠近原位置的时候提前减速后停止,如果当它的值是1的时候,动画就不会弹了,其中官方在SpringForce类中给了这么几个常量:

可以直接SpringForce.DAMPING_RATIO_HIGH_BOUNCY这样使用,也可以自己填0.3f这样的具体数值。

setStiffness(@FloatRange(from = 0.0) float stiffness)是用来设置刚度的,同样不能小于0,它的值越小,弹性越强,弹的时间越长,反之弹的时间越短,在SpringForce类中定义了这样几个常量:

4.构造方法

SpringAnimation有两种构造方法

public SpringAnimation(View v, ViewProperty property)

public SpringAnimation(View v, ViewProperty property, float finalPosition)

如果使用三个参数的方法就可以不用设置SpringForce

而是这样的方式来使用。

5.设置起始位置和速度

起始位置

SpringForce设置了view的终点,但是我们需要使用SpringAnimation的setStartValue(float startValue) 来设置动画的开始位置,如果不使用这个方法,那么动画就会吧view的当前位置当做起始点。

起始速度

SpringAnimation的默认起始速度是0,我们可以自己定义动画的起始速度, 这个速度的值是 像素/秒。

android 弹性动画,Android开发SpringAnimation实现弹性动画相关推荐

  1. OS开发UI篇—核心动画(基础动画)

    文顶顶 最新博文发布地址:花田半亩(wendingding.com) iOS开发UI篇-核心动画(基础动画) iOS开发UI篇-核心动画(基础动画) 一.简单介绍 CAPropertyAnimatio ...

  2. android 4 动画,[Android]开发App,你得知道这些4——动画

    0.前言 上一篇文章中,我们讲解了Android的触摸事件 有兴趣的可以去看一看 准备工作 在读本文前,你最好有以下准备: (1)安装Android Stuido(以下简称AS) (2)有一定的Jav ...

  3. android开发笔记之属性动画

    属性动画简单介绍 作用对象:任意 Java 对象 不再局限于 视图View对象 实现的动画效果:可自定义各种动画效果 不再局限于4种基本变换:平移.旋转.缩放 & 透明度 特点 作用对象进行了 ...

  4. 直播app源代码 直播软件开发Android UI动画 仿直播点赞飘心动画效果

    直播app源代码 直播软件开发Android UI动画 仿直播点赞飘心动画效果 一个飘心的小动画,之前看也看到网上有很多轮子,但是感觉不是很符合我的需求,所以自己就凑活凑活搞出来一个,废话不多说先看图 ...

  5. android 科技动画,android开发ViewFlipper触摸动画

    [IT168技术]介绍:在教程中,我们可以学习如何解决在Android项目的共同问题,有更多的关于Android的项目信息,我建议你下载ADT Android Pluglins和Eclipse. 背景 ...

  6. Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8985457        基于前两篇比较简单的实例做铺垫之后,这一篇我们来实 ...

  7. Android开发--图形图像与动画(三)--Animation效果的XML实现

    使用XML来定义Tween Animation 动画的XML文件在工程中res/anim目录,这个文件必须包含一个根元素,可以使<alpha><scale> <trans ...

  8. Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转

    Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 下面就讲一下Tweene Animations. 主要类: ...

  9. Android开发--图形图像与动画(五)--详解LayoutAnimationController

    首先需要先介绍下LayoutAnimationController: * 1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup  * 里 ...

最新文章

  1. 技术图文:Matlab VS. Numpy 矩阵基本运算
  2. 电商618背后的那些技术事儿
  3. centos 7.3 开放端口并对外开放
  4. 联机日志损坏时的恢复(非正常关闭数据库)
  5. Android 应用中十大常见 UX 错误
  6. javascript --- 利用Sortable实现一个可视化公式编辑器
  7. strlensizeof
  8. MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
  9. 西门子CPU扩展以太网接口的一种解决方案
  10. 项目文档:IT项目管理
  11. Java TreeMap
  12. jspx格式手机打开,jspx来自埃及的java web快速开发框架
  13. 【Unity2D入门教程】简单制作战机弹幕射击游戏③C#编写 子弹Laser脚本
  14. 【第二届集成电路EDA备赛】一、Icarus Verilog(iverilog)快速上手使用(基于windows)
  15. Pyspider启动过程中的问题ssl/nss错配问题
  16. php上传txt文件读取乱码
  17. 【从0开始自学C/C++并在2023年10月之前找到一份工作之C++基础】
  18. linux操作系统与Windows操作系统
  19. 蚂蚁全媒体中心刘鑫炜解答:为什么要打造个人品牌
  20. python应用领域介绍 -- (python 真的很强大)

热门文章

  1. vue 字母或数字不会自动换行
  2. 数学方程式记录html5动画js特效
  3. 汽车过户时,为什么要拓印车辆的两号?
  4. 安卓web项目开发教程!斗鱼直播Android开发二面被刷,先收藏了
  5. windows server 2019 如何修改远程端口,亲测可用
  6. 小白学习freemark的过程(代码全贴+详细介绍)
  7. 28-基于单片机的全自动洗衣机模拟系统
  8. 14. 创业者寻找投资人经验分享
  9. E. You Are Given Some Strings...(AC自动机)
  10. linux桌面快捷键_3个工具,可让您轻松快捷地在Linux桌面上进行扫描