android-属性动画

补间动画和属性动画的区别
属性动画实现的效果相似于补间动画,但是不同于补间动画,最大的区别.
:属性动画这使得改变了控件的属性,而补间动画只是幻影

属性动画分为
静态:创建在XML文件
动态:创建在Java代码创建

动画种类
1.旋转动画
2.平移动画
3.缩放动画
4.渐变动画

5.动画集合

在xml定义动画属性,浮点型小数,
属性动画会真正的改变属性

注意:属性动画是android系统3.0后出现,所以必须在API高于11的情况下使用

静态属性动画:在res创建animator文件夹,在里面创建XML文件(注意:文件夹的名字一定是animator)

透明度动画

 //透明度动画
                ObjectAnimator ofFloat = ObjectAnimator.ofFloat(animation_iv,"alpha",new float[]{0.0f,0.2f,0.4f,0.6f,0.8f,1.0f});
                //设置动画的时间
                ofFloat.setDuration(3000);
                //设置动画的模式
                ofFloat.setRepeatMode(ObjectAnimator.RESTART);
                //设置动画的执行次数
                ofFloat.setRepeatCount(1);
                //开启动画
                ofFloat.start();

平移动画

//平移动画
                ObjectAnimator translationY = ObjectAnimator.ofFloat(animation_iv, "translationY", new float[]{10f, 20f, 30f, 40f, 50f, 60f, 70f, 80f,90f,100f});
                //设置动画时间
                translationY.setDuration(3000);
                //设置动画模式
                translationY.setRepeatMode(ObjectAnimator.RESTART);
                //设置动画执行次数
                translationY.setRepeatCount(1);
                //开始执行
                translationY.start();

缩放动画

//缩放动画
                ObjectAnimator scaleX = ObjectAnimator.ofFloat(animation_iv, "scaleX", new float[]{1f, 2f, 3f, 4f, 5f, 6f, 5f, 4f, 3f, 2f, 1f});
                scaleX.setDuration(3000);
                scaleX.setRepeatMode(ObjectAnimator.RESTART);
                scaleX.setRepeatCount(1);
                scaleX.start();

旋转动画

 //旋转动画
                ObjectAnimator rotationY = ObjectAnimator.ofFloat(animation_iv, "rotationY", new float[]{90f,120f,150f,180f,210f,240f,270f,300f,330f,360f });
                rotationY.setDuration(3000);
                rotationY.setRepeatMode(ObjectAnimator.RESTART);
                rotationY.setRepeatCount(1);
                rotationY.start();

动画集合

//创建动画集合
                AnimatorSet set = new AnimatorSet();
                ObjectAnimator o1 = ObjectAnimator.ofFloat(animation_iv, "rotationY", new float[]{90f,120f,150f,180f,210f,240f,270f,300f,330f,360f });
                o1.setDuration(3000);
                ObjectAnimator o2 = ObjectAnimator.ofFloat(animation_iv, "scaleX", new float[]{1f, 2f, 3f, 4f, 5f, 6f, 5f, 4f, 3f, 2f, 1f});
                o2.setDuration(3000);
                ObjectAnimator o3 = ObjectAnimator.ofFloat(animation_iv, "translationY", new float[]{10f, 20f, 30f, 40f, 50f, 60f, 70f, 80f,90f,100f});
                o3.setDuration(3000);
                ObjectAnimator o4 = ObjectAnimator.ofFloat(animation_iv,"alpha",new float[]{0.0f,0.2f,0.4f,0.6f,0.8f,1.0f});
                o4.setDuration(3000);
                //存入集合
                set.playTogether(o1,o2,o3,o4);
                //开始执行
                set.start();
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值