Rebound弹性动画开源动画库基本用法

2016-10-27 / 8 阅读 / Android

Rebound是facebook推出的一个弹性动画开源动画库,可以让动画看起来真实自然,像真实世界的物理运动,带有力的效果。

官方地址:http://facebook.github.io/rebound

Android studio配置依赖

dependencies {
    compile 'com.facebook.rebound:rebound:0.3.8'
}

 

基本用法:

使用默认参数
Rebound默认的拉力和摩擦力参数分别是40和7
spring.getCurrentValue()默认从0开始
img.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {

					//获取Spring对象
                    SpringSystem springSystem = SpringSystem.create();
                    Spring spring = springSystem.createSpring();
                    spring.setEndValue(1);
					//动画更新
                    spring.addListener(new SimpleSpringListener() {
                        @Override
                        public void onSpringUpdate(Spring spring) {
                            float value = (float) spring.getCurrentValue();
                            img.setScaleX(value);
                            img.setScaleY(value);
                        }
                    });
                }
                return true;
            }
        });
效果:

自定义参数用法

new SpringConfig(80, 3)分别为弹力和阻力
spring.setCurrentValue(0.7)设置开始值
img.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {

					//获取Spring对象
                    SpringSystem springSystem = SpringSystem.create();
                    Spring spring = springSystem.createSpring();
					//设置弹力和阻力
                    SpringConfig springConfig = new SpringConfig(80, 3);
                    spring.setSpringConfig(springConfig);
					//设置开始值
                    spring.setCurrentValue(0.7);
					//设置结束值
                    spring.setEndValue(1);
					//动画更新
                    spring.addListener(new SimpleSpringListener() {
                        @Override
                        public void onSpringUpdate(Spring spring) {
                            float value = (float) spring.getCurrentValue();
                            img.setScaleX(value);
                            img.setScaleY(value);
                        }
                    });
                }
                return true;
            }
        });
效果:

相关推荐