属性动画的基本使用

动画分为:帧动画,补间动画,属性动画

属性动画实现的效果与补间动画非常相似,
最大的区别:属性动画真实的改变了控件的属性,而补间动画只是幻影
属性动画是在Android3.0以后才出现,所以要高于API11的情况下

下面是一些按钮的点击事件:布局就不写了,比较简单

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tranlate:    //平移
                ObjectAnimator translationY = ObjectAnimator.ofFloat(image, "translationY", new float[]{10f, 20f, 50f});
                //时长
                translationY.setDuration(2000);
                //执行模式
                translationY.setRepeatMode(ObjectAnimator.RESTART);
                //重复次数
                translationY.setRepeatCount(1);
                //开始
                translationY.start();
                
                break;
            case R.id.rotate:    //旋转
                ObjectAnimator rotationX = ObjectAnimator.ofFloat(image, "rotationX", 90f, 180f, 360f);
                rotationX.setDuration(3000);
                rotationX.setRepeatMode(ObjectAnimator.REVERSE);
                rotationX.setRepeatCount(2);
                rotationX.start();
                break;
            case R.id.alpha:  //渐变  0.0是完全透明  
                ObjectAnimator alpha = ObjectAnimator.ofFloat(image, "alpha", 0.0f, 1.0f);
                alpha.setDuration(2000);
                alpha.setRepeatCount(3);
                alpha.setRepeatMode(ObjectAnimator.REVERSE);
                alpha.start();
                break;
            case R.id.scale://伸缩
                ObjectAnimator scale = ObjectAnimator.ofFloat(image, "scaleX", 1f,4f,5f);
                scale .setDuration(2000);
                scale .setRepeatCount(3);
                scale .setRepeatMode(ObjectAnimator.REVERSE);
                scale .start();
                break;
            case R.id.animatorset://动画集合
                AnimatorSet animatorSet = new AnimatorSet();
                ObjectAnimator sc = ObjectAnimator.ofFloat(image, "scaleX", 1f,4f,5f);
                sc.setDuration(2000);
                ObjectAnimator rotation = ObjectAnimator.ofFloat(image, "rotationX", 90f, 180f, 360f);
                rotation.setDuration(2000);
                animatorSet.playTogether(sc,rotation);
                animatorSet.start();
                break;
        }
    }

猜你喜欢

转载自blog.csdn.net/KWON_QMY/article/details/84203953