• 抛物线动画


    private void jumpToAnim() {

    // 得到两个按钮的位置,和宽高,设置收藏按钮和收藏文件夹之间的抛物线动画

    final int[] location1s;

    final int[] location2s;

        location1s = new int[2];

        llShouCang.getLocationInWindow(location1s);

        location2s = new int[2];

        rlFavorites.getLocationOnScreen(location2s);

        location1s[0]=location1s[0]+llShouCang.getMeasuredWidth()/8;

        location2s[0]=location2s[0]+rlFavorites.getMeasuredWidth()/2;

    ValueAnimator valueAnimator = new ValueAnimator().ofFloat((float)(location1s[0]+0.0),(float)(location2s[0]+0.0));

    valueAnimator.setDuration(1000);

    // valueAnimator.setObjectValues(new PointF(0, 0), new PointF(200, 200));

    valueAnimator.setInterpolator(new DecelerateInterpolator());;

    valueAnimator.start();

    ivVehicleLike.setVisibility(View.VISIBLE);

    new Handler().postDelayed(new Runnable() {

    @Override

    public void run() {

    ivVehicleLike.setVisibility(View.GONE);

    }

    }, 900);

    valueAnimator.addUpdateListener(new AnimatorUpdateListener() {

    @Override

    public void onAnimationUpdate(ValueAnimator animation) {

    Float x=  (Float) animation.getAnimatedValue();

    Float y;

    int midX=(location2s[0]+location1s[0])/2;

    int halfLength=(location2s[0]-location1s[0])/2;

    // y=location1s[1]-midX*midX/30+(x-midX)*(x-midX)/30;

    y=location1s[1]+(x-midX)*(x-midX)/30-halfLength*halfLength/30-llShouCang.getMeasuredHeight()/2;

    ivVehicleLike.setX(x);

    ivVehicleLike.setY(y);

    // ivVehicleLike.setX(x);

    // ivVehicleLike.setY(y);

    }

    });

    }

  • 相关阅读:
    Sum of Medians
    MINSUB
    Girls Love 233
    How Many Answers Are Wrong
    Sorting It All Out
    Cube Stacking
    Boolean Expressions
    表达式求值
    #1301 : 筑地市场
    用seaborn对数据可视化
  • 原文地址:https://www.cnblogs.com/wangzehuaw/p/4494366.html
Copyright © 2020-2023  润新知