FlyRefreshHeader.java 文件源码

java
阅读 33 收藏 0 点赞 0 评论 0

项目:SmartRefresh 作者:
@Override
public void onStartAnimator(RefreshLayout layout, int headHeight, int extendHeight) {
    /**
     * 提前关闭 下拉视图偏移
     */
    mRefreshKernel.animSpinner(0);

    if (mCurrentPercent > 0) {
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(mCurrentPercent, 0);
        valueAnimator.setDuration(300);
        valueAnimator.addUpdateListener(animation -> {
            onPullingDown((float) animation.getAnimatedValue(), 0, 0, 0);
        });
        valueAnimator.start();
        mCurrentPercent = 0;
    }
    if (mFlyView != null && !mIsRefreshing) {
        if (mFlyAnimator != null) {
            mFlyAnimator.end();
            mFlyView.clearAnimation();
        }
        mIsRefreshing = true;
        layout.setEnableRefresh(false);


        final int offDistX = ((View) mRefreshLayout).getWidth()-mFlyView.getLeft();
        final int offDistY = -(mFlyView.getTop() - mOffset) * 2 / 3;
        ObjectAnimator transX = ObjectAnimator.ofFloat(mFlyView, "translationX", 0, offDistX);
        ObjectAnimator transY = ObjectAnimator.ofFloat(mFlyView, "translationY", 0, offDistY);
        transY.setInterpolator(PathInterpolatorCompat.create(0.7f, 1f));
        ObjectAnimator rotation = ObjectAnimator.ofFloat(mFlyView, "rotation", mFlyView.getRotation(), 0);
        rotation.setInterpolator(new DecelerateInterpolator());
        ObjectAnimator rotationX = ObjectAnimator.ofFloat(mFlyView, "rotationX", mFlyView.getRotationX(), 50);
        rotationX.setInterpolator(new DecelerateInterpolator());

        AnimatorSet flyUpAnim = new AnimatorSet();
        flyUpAnim.setDuration(800);
        flyUpAnim.playTogether(transX
                ,transY
                ,rotation
                ,rotationX
                ,ObjectAnimator.ofFloat(mFlyView, "scaleX", mFlyView.getScaleX(), 0.5f)
                ,ObjectAnimator.ofFloat(mFlyView, "scaleY", mFlyView.getScaleY(), 0.5f)
        );

        mFlyAnimator = flyUpAnim;
        mFlyAnimator.start();
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号