版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ym4189/article/details/77099881
转载请注明出处:http://blog.csdn.net/ym4189/article/details/77099881
前言
之前需要做一个弹簧效果的动画,网上一看,大家都用Rebound框架,这里简单写一下。
rebound是facebook的开源动画库。
先看我做的效果:
可以看到这是一种弹簧效果的上下位移动画。
使用
上图只是我使用的其中一种效果,其他效果就不上图了。
首先添加Rebound库依赖
Rebound提供了三种方式:
· 导入jar包:rebound-0.3.8.jar
· 添加Gradle依赖(推荐)
dependencies {
compile 'com.facebook.rebound:rebound:0.3.8'
}
· 添加Maven依赖
<dependency>
<groupId>com.facebook.rebound</groupId>
<artifactId>rebound</artifactId>
<version>0.3.8</version>
</dependency>
为什么说好用,因为rebound的使用非常简单。
看代码:
private void initData() {
// 首先创建一个SpringSystem对象
SpringSystem springSystem = SpringSystem.create();
// 添加一个弹簧到系统
Spring spring = springSystem.createSpring();
//设置弹簧属性参数,如果不设置将使用默认值
//两个参数分别是弹力系数和阻力系数
spring.setSpringConfig(SpringConfig.fromOrigamiTensionAndFriction(100, 2));
// 添加弹簧监听器
spring.addListener(new SimpleSpringListener() {
@Override
public void onSpringUpdate(Spring spring) {
// value是一个符合弹力变化的一个数,我们根据value可以做出弹簧动画
float value = (float) spring.getCurrentValue();
//基于Y轴的弹簧阻尼动画
view.setTranslationY(value);
// 对图片的伸缩动画
float scale = 1f - (value * 0.5f);
mImageView.setScaleX(scale);
mImageView.setScaleY(scale);
}
});
// 设置动画结束值
spring.setEndValue(1f);
}
通过以上步骤就能实现弹簧阻尼动画效果。
参考:http://facebook.github.io/rebound/
结语
好记性不如烂笔头。一句话说得好:
一点点的积累,量变引起质变。