不忘初心 砥礪前行, Tomorrow Is Another Day !android
本文概要:api
android動畫分爲View動畫和屬性動畫,View動畫又包括補間動畫和逐幀動畫.因爲如今View動畫基本上不多運用,使用也比較簡單這裏就不在講述.bash
示例代碼ide
view.animate()
.translationX(Utils.dpToPixel(200))
.translationY(100)
.rotation(180)
.alpha(0.5f)
.setStartDelay(1000)
.start();
複製代碼
此方式只適合系統定義的屬性如translationX,translationY等等來快速使用屬性動畫,若是須要一些自定義類型採起方式二.函數
原理:佈局
示例代碼post
ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 400);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int curValue = (int) animation.getAnimatedValue();
Log.d(TAG, "onAnimationUpdate: " + curValue);
}
});
valueAnimator.setDuration(2000);
valueAnimator.setEvaluator(new IntEvaluator());
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.start();
ObjectAnimator objectAnimator = ObjectAnimator.ofInt("控件對象",
"屬性名",0,400);
objectAnimator.setDuration(2000);
objectAnimator.setEvaluator(new IntEvaluator());
objectAnimator.setInterpolator(new LinearInterpolator());
objectAnimator.start();
複製代碼
當同一控件多個屬性,能夠實現多個動畫的播放時,也能夠採起以下方式.學習
playTogether和playSequentially.只負責定時激活控件動畫.動畫
play.with.after.before.自由排列動畫順序.ui
當AnimatorSet所設置的函數與單個動畫所設置衝突時,就以AnimatorSet設置爲準。
AnimatorSet真正激活延時=AnimatorSet.startDelay(延長AnimatorSet的激活時間)+第一個動畫.startDelay
因爲本人技術有限,若有錯誤的地方,麻煩你們給我提出來,本人不勝感激,你們一塊兒學習進步.
參考連接: