一、概述
Rebound 通过胡克定律,实现的一个类似“弹簧”动画效果的第三方工具包,由FaceBook退出,于2013年10月正式发布,旨在解决笨重、缓慢的传统移动网络界面。
先上几张效果图:
特点: Rebound 可以使你的动画看起来像真实自然,像真实世界物理运动 Rebound 不是一个物理引擎库,但是Rebound可以使用弹簧动力来驱动各种各样的动画 Rebound使用和Origami(iOS的)相同的弹簧系数,方便实用。 并且可以和Material Design的设计原则呼应,可用于滚动条、切换开关、呼叫等场景下
二、如何使用
1.首先添加Rebound库依赖
如果你使用Android studio,那么恭喜你,你可以直接添加gradle依赖,相比其他方法简便许多
[java]
view plain
copy
dependencies { compile 'com.facebook.rebound:rebound:0.3.6' }
下载Reboud Jar文件,导入工程
添加Maven依赖
[java]
view plain
copy
<dependency> <groupId>com.facebook.rebound</groupId> <artifactId>rebound</artifactId> <version>0.3.6</version> </dependency>
2.创建一个SpringSystem对象
[java]
view plain
copy
SpringSystem mSpringSystem = SpringSystem.create();
3.添加一个“弹簧”到系统
[java]
view plain
copy
Spring mSpring = mSpringSystem.createSpring();
4.添加监听器
[java]
view plain
copy
mSpring.addListener(this); @Override public void onSpringUpdate(Spring spring) { } @Override public void onSpringAtRest(Spring spring) { } @Override public void onSpringActivate(Spring spring) { } @Override public void onSpringEndStateChange(Spring spring) { }
当然还可以实现简单的监听
[java]
view plain
copy
spring.addListener(new SimpleSpringListener() { @Override public void onSpringUpdate(Spring spring) { } });
5.设置动画结束值
[java]
view plain
copy
mSpring.setEndValue(1f);
6.在弹簧更新数据是对图片进行对应伸缩
[java]
view plain
copy
public void onSpringUpdate(Spring spring) { float value = (float) spring.getCurrentValue(); float scale = 1f - (value * 0.5f); mImageToAnimate.setScaleX(scale); mImageToAnimate.setScaleY(scale); }
通过上面几个步骤可以很方便的实现弹簧阻尼效果的图片伸缩
参考
Fackbook Rebound
Rebound Api
胡克定律(Hooks’ law)
直接拿来用!Facebook移动开源项目大合集
转载请注明原文地址: https://ju.6miu.com/read-1303881.html