1. 程式人生 > >Android彈簧動畫 Rebound實戰

Android彈簧動畫 Rebound實戰

前言

之前需要做一個彈簧效果的動畫,網上一看,大家都用Rebound框架,這裡簡單寫一下。
rebound是facebook的開源動畫庫。

先看我做的效果:

可以看到這是一種彈簧效果的上下位移動畫。

使用

上圖只是我使用的其中一種效果,其他效果就不上圖了。
首先新增Rebound庫依賴
Rebound提供了三種方式:

· 新增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); }

通過以上步驟就能實現彈簧阻尼動畫效果。

結語

好記性不如爛筆頭。一句話說得好:

一點點的積累,量變引起質變。