Android 跌落动画

Android 跌落动画

图片动画效果

通过RotateAnimation实现二次旋转动画实现(使用BounceInterpolator加速弹跳插值器)

        //计算跌落度数对应的中心点位置
        final double rw=iv.getWidth()-iv.getWidth()*Math.cos(Math.toRadians(dusu));
        final double rh=iv.getWidth()*Math.sin(Math.toRadians(dusu));
        iv.setTranslationX(-(int)(rw));
        iv.setTranslationY(-(int)rh);

        //设置第一次跌落动画
        Animation rotateAnimation = new RotateAnimation(0, -dusu, (float)(iv.getWidth()-rw),(float)-rh);
        rotateAnimation.setFillAfter(true);
        rotateAnimation.setDuration(1000);
        rotateAnimation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
            @Override
            public void onAnimationEnd(Animation animation) {
                //先设置移动到原点
                iv.setTranslationX(0);
                iv.setTranslationY(0);
                //执行第二次跌落动画
                Animation rotateAnimation = new RotateAnimation(-dusu,0,0,0);
                rotateAnimation.setFillAfter(true);
                rotateAnimation.setDuration(1000);
                rotateAnimation.setInterpolator(new BounceInterpolator());
                iv.startAnimation(rotateAnimation);
            }
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
        rotateAnimation.setInterpolator(new BounceInterpolator());
        iv.startAnimation(rotateAnimation);

图表动画效果实现

绘制图表时,需要执行动画的Y坐标 乘以Delta
通过Android里面得动画插值器从 0-1 改变Delta值达到理想动画效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值