屬性動畫基本使用

1、屬性值

    rotationX,rotationY,scaleX,scaleY,translationX,translationY,alpha.

2、基本用法

//旋轉動畫

ObjectAnimator.ofFloat(button, "rotationX", 0f, 360f).setDuration(2000).start();

//平移動畫

ObjectAnimator.ofFloat(button_2, "translationX", 0, 100).setDuration(2000).start();

3、動畫集合使用

ObjectAnimator animator1 = ObjectAnimator.XXX();
ObjectAnimator animator2 = ObjectAnimator.XXX();
ObjectAnimator animator3 = ObjectAnimator.XXX();
AnimatorSet set = new AnimatorSet();
 set.setDuration(1000);
 set.playTogether(animator1,animator2,animator3);
 set.start()

playTogether傳入的是一個可變參數。

4、動畫集合實現2

PropertyValuesHolder alpha = PropertyValuesHolder.ofXXX();
PropertyValuesHolder scaleX = PropertyValuesHolder.ofXXX();
PropertyValuesHolder scaleY = PropertyValuesHolder.ofXXX();
 ObjectAnimator.ofPropertyValuesHolder(alpha,scaleX,scaleY).setDuration(1000).start()

5、動畫監聽

//傳入的屬性名字可以是未知的,它只會計算出一個合適的值進行回調

ObjectAnimator animator = ObjectAnimator.ofXXX().setDuration();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
       Object animatedFraction = animation.getAnimatedFraction()
       Object animatedValue =animation.getAnimatedValue()
});
animator.start()

動畫監聽獲取到的值是Object類型,需要強轉爲自己需要的類型。

6、ValueAnimator使用

ValueAnimator只是計算,並不會作用在任何控件上,

//簡單自由落體動畫

ValueAnimator valueAnimator = ValueAnimator.ofXXX();
valueAnimator.setTarget(v);
valueAnimator.setDuration();
valueAnimator.setInterpolator(BounceInterpolator());
valueAnimator.start();
valueAnimator.addUpdateListener(ValueAnimator.AnimatorUpdateListener() {
    (ValueAnimator animation) {
       float animatedValue = (float)animation.getAnimatedValue()
     //view.setTranslationY(animatedValue)將計算的值作用在View上
})







發佈了31 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章