Android 弹簧动画效果

一、概述

Rebound 通过胡克定律,实现的一个类似“弹簧”动画效果的第三方工具包,由FaceBook退出,于2013年10月正式发布,旨在解决笨重、缓慢的传统移动网络界面。

先上几张效果图:

               

         


特点:
Rebound 可以使你的动画看起来像真实自然,像真实世界物理运动
Rebound 不是一个物理引擎库,但是Rebound可以使用弹簧动力来驱动各种各样的动画
Rebound使用和Origami(iOS的)相同的弹簧系数,方便实用。
并且可以和Material Design的设计原则呼应,可用于滚动条、切换开关、呼叫等场景下

二、如何使用

1.首先添加Rebound库依赖

  • 如果你使用Android studio,那么恭喜你,你可以直接添加gradle依赖,相比其他方法简便许多
    [java]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. dependencies {  
    2.   compile 'com.facebook.rebound:rebound:0.3.6'  
    3. }  

  • 下载Reboud Jar文件,导入工程
  • 添加Maven依赖 
    [java]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. <dependency>  
    2.   <groupId>com.facebook.rebound</groupId>  
    3.   <artifactId>rebound</artifactId>  
    4.   <version>0.3.6</version>  
    5. </dependency>  

2.创建一个SpringSystem对象

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. SpringSystem mSpringSystem = SpringSystem.create();  

3.添加一个“弹簧”到系统

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1.       
  2. Spring mSpring = mSpringSystem.createSpring();  

4.添加监听器

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mSpring.addListener(this);  
  2. //实现SpringListener接口,需要实现下面方法  
  3. @Override  
  4. public void onSpringUpdate(Spring spring) {  
  5. }  
  6. @Override  
  7. public void onSpringAtRest(Spring spring) {  
  8. }  
  9. @Override  
  10. public void onSpringActivate(Spring spring) {  
  11. }  
  12. @Override  
  13. public void onSpringEndStateChange(Spring spring) {  
  14. }  

当然还可以实现简单的监听

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. spring.addListener(new SimpleSpringListener() {    
  2.     
  3.   @Override    
  4.   public void onSpringUpdate(Spring spring) {    
  5.     // You can observe the updates in the spring    
  6.     // state by asking its current value in onSpringUpdate.    
  7.    
  8.   }    
  9. });    


5.设置动画结束值

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mSpring.setEndValue(1f);  

6.在弹簧更新数据是对图片进行对应伸缩

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public void onSpringUpdate(Spring spring) {  
  2.     float value = (float) spring.getCurrentValue();  
  3.     float scale = 1f - (value * 0.5f);  
  4.     mImageToAnimate.setScaleX(scale);  
  5.     mImageToAnimate.setScaleY(scale);  
  6. }  

通过上面几个步骤可以很方便的实现弹簧阻尼效果的图片伸缩


参考
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值