弹性动画

来源:互联网 发布:linux搭建java环境 编辑:程序博客网 时间:2024/06/05 03:10
弹性动画是使用Facebook推出的rebound 如/yj何使用呢?我们首先要在build.gradle中引入依赖 compile‘com.facebook.rebound:rebound:0.3.8’ 
图片布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.bwie.tantiaodonghua.MainActivity">    <ImageView        android:id="@+id/iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:src="@mipmap/ic_launcher" /></RelativeLayout>
代码如下
package com:.bwie.tantiaodonghua;
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import com.facebook.rebound.SimpleSpringListener;import com.facebook.rebound.Spring;import com.facebook.rebound.SpringConfig;import com.facebook.rebound.SpringSystem;public class MainActivity extends AppCompatActivity {    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);
//找控件        iv = (ImageView) findViewById(R.id.iv);
//设置点击事件        iv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {
//点击调用该方法                onScaleAnimationBySpringWayTwo();            }        });    }
//使用rebound我们需要初始化springsystem对象和spring对象。通过spring 我们可以设置动画的属性的初始值,结束值。spring需要添加一个springlistener接口,
代码中我用的simplespringlistener 是 springlistenter的实现类    private void onScaleAnimationBySpringWayTwo(){        SpringSystem springSystem=SpringSystem.create();        Spring spring=springSystem.createSpring();        spring.setCurrentValue(1.0f);//初始值        spring.setSpringConfig(new SpringConfig(60,4));        spring.addListener(new SimpleSpringListener(){            @Override            public void onSpringUpdate(Spring spring) {                super.onSpringUpdate(spring);                float currentValue= (float) spring.getCurrentValue();                iv.setScaleX(currentValue);                iv.setScaleY(currentValue);            }        });        spring.setEndValue(1.8f);//结束值    }}
通过源码可以发现构造函数接受两个变量:tension(拉力)friction(摩擦力),作用:tension拉力越大,弹性越大,friction摩擦力越大,弹性效果越小

原创粉丝点击