属性动画

来源:互联网 发布:重生小说改编的网络剧 编辑:程序博客网 时间:2024/06/08 20:10

       写的文章比较粗糙呢,最好是学过帧动画和补间动画的,不然看的不是很明了

属性动画的float方法  分别是上下左右移动  

        ObjectAnimator tranLeft = ObjectAnimator.ofFloat(mIvLeft, "TranslationX", 0f, -100f);

        ObjectAnimator tranRight = ObjectAnimator.ofFloat(mIvRight, "TranslationX", 0f, 100f);
        ObjectAnimator tranTop = ObjectAnimator.ofFloat(mIvTop, "TranslationY", 0f, -100f);
        ObjectAnimator tranBottom = ObjectAnimator.ofFloat(mIvBottom, "TranslationY", 0f, 100f);

 把他们组合起来
        AnimatorSet animatorSet = new AnimatorSet();

        animatorSet.playTogether(tranBottom, tranLeft, tranRight, tranTop);

动画的时长

        animatorSet.setDuration(2000);

开始动画

        animatorSet.start();



属性动画的int方法

//先创建一个ValueAnimator
        valueAnimator = ValueAnimator.ofInt(0, 300);
        //设置动画执行时间
        valueAnimator.setDuration(3000);
        //设置重复次数
//        valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
        //设置动画重复模式
        valueAnimator.setRepeatMode(ValueAnimator.REVERSE);
        //设置插值器
        valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
        //设置监听
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                int value = (int) animation.getAnimatedValue();
//                Log.e("MainActivity", "value:" + value);
                mTv.layout(value, value, value + mTv.getWidth(), value + mTv.getHeight());
            }
        });
        //开启动画
        valueAnimator.start();

原创粉丝点击