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

    }

    });

    }

  • 相关阅读:
    如何让自己的app尽量不被系统杀死
    linux常用命令-权限管理命令
    linux常用命令-用户管理命令
    linux常用命令-文件处理命令
    npm命令
    新技术新框架新工具选型原则
    tomcat启动命令行中文乱码
    docker命令
    tinkpad e450c 进入 BIOS
    基于Java服务的前后端分离解决跨域问题
  • 原文地址:https://www.cnblogs.com/wangzehuaw/p/4494366.html
Copyright © 2011-2022 走看看