android 实现车轮滚动效果

本文介绍了一种使用Java代码实现车轮滚动动画的方法。通过ValueAnimator类控制车轮图片的平移和旋转,模拟出从中间向两边滚动的效果。

晚上下班看到有美女骑车,就想做一个车轮滚动的效果,空间有限,就没有一直滚,我做的车轮是左右滚动:
效果图:这里写图片描述

//车轮半径
 int radius = centerImg.getHeight()/2;

                final ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f,-1.0f,1.0f);
                valueAnimator.setDuration(500);
                valueAnimator.setInterpolator(new LinearInterpolator());
                valueAnimator.setRepeatCount(Animation.INFINITE);
                valueAnimator.setRepeatMode(Animation.REVERSE);
                final float scrollLength = 100.0f;
                //每滚动一个scrollLength,则轮子旋转的角度
                final float angleToTrans = (float) ((scrollLength / (2*Math.PI*radius)) * 360.0f);
                valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                    private boolean isFirst = true;
                    @Override
                    public void onAnimationUpdate(ValueAnimator animation) {
                        float fraction = (float) animation.getAnimatedValue();
                        centerImg.setTranslationX(scrollLength * fraction);
                        centerImg.setRotation(angleToTrans * fraction);
                        if(isFirst && Math.abs(fraction) >=0.9f){
                        //第一次是从中间滚到左边,之后就两头滚了
                            isFirst = false;
                            valueAnimator.cancel();
                            valueAnimator.setFloatValues(fraction,1.0f);
                            valueAnimator.start();
                        }
                    }
                });
                valueAnimator.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值