Android彈簧動畫 Rebound實戰
阿新 • • 發佈:2019-02-11
前言
之前需要做一個彈簧效果的動畫,網上一看,大家都用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);
}
通過以上步驟就能實現彈簧阻尼動畫效果。
結語
好記性不如爛筆頭。一句話說得好:
一點點的積累,量變引起質變。