屬性動畫與差值器

weixin_33806914發表於2018-03-16

1. 簡介


下落的時候越來越快:new AccelerateInterpolator();
上拋的時候越來越慢:new DecelerateInterpolator();
類似於QQ訊息拖拽後有回彈效果:new OvershootInterpolator() ;
具體程式碼如下:

        //上拋動畫
        ObjectAnimator transtationAnimator = ObjectAnimator.ofFloat(mShapeView , "translationY" , mTranslationDistance , 0) ;
        // 配合中間陰影放大
        ObjectAnimator scaleAnimator = ObjectAnimator.ofFloat(mShadowView , "scaleX" , 0.3f , 1f) ;

        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.setDuration(ANIMATOR_DURATION) ;
        // 上拋的時候越來越慢
        animatorSet.setInterpolator(new DecelerateInterpolator()); //差值器
        animatorSet.playTogether(transtationAnimator , scaleAnimator);

        // 上拋完之後就開始下落,監聽動畫執行完畢
        animatorSet.addListener(new AnimatorListenerAdapter() {

            // 動畫執行完畢
            @Override
            public void onAnimationEnd(Animator animation) {
                // 上拋完之後就開始下落了
                startFallAnimation();
            }

            // 動畫開始執行
            @Override
            public void onAnimationStart(Animator animation) {
                // 開始旋轉
                startRotationAnimator() ;

            }
        });

        // 開始動畫
        animatorSet.start();

相關文章