Android弹簧动画 Rebound实战

版权声明:本文为博主原创文章,未经博主允许不得转载。 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/

结语

好记性不如烂笔头。一句话说得好:

一点点的积累,量变引起质变。

猜你喜欢

转载自blog.csdn.net/ym4189/article/details/77099881