zoukankan      html  css  js  c++  java
  • 抛物线动画

    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);

    }

    });

    }

  • 相关阅读:
    问答
    观看视频后的笔记
    处理json的常用方式
    通过excel模板文件根据数据库数据修改其中的单元格数据
    declare用法
    添加文件然后自动打开
    Mybatis之入门
    观察者模式
    职责链模式
    并发新构件之Exchanger:交换器
  • 原文地址:https://www.cnblogs.com/wangzehuaw/p/4494366.html
Copyright © 2011-2022 走看看