安卓属性动画一

1、概述
Android框架提供了两种动画系统:属性动画和视图动画。这两种动画系统都有变化的选择,但是总的来说,属性动画系统是更好的选择,因为它更加灵活,并提供了更多的特性。
属性动画系统是一个强大的框架,它允许你动画几乎所有的东西。例如一个对象在屏幕中的位置,要动画多久,和动画之间的距值。

 通常我们要操作的属性为:
 rotationX、rotationY 旋转(以x轴或y轴)
 scaleX、scaleY 缩放
 translationX、translationY 平移
 X、Y 坐标
 alpha 透明度

1、ObjectAnimator(针对于某个组件)
单个动画:

ObjectAnimator.ofFloat(v,"rotationX",0.0f,360.0f).setDuration(5000).start();//这里是图片围绕x轴进行旋转

组合多个动画:

     PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofFloat("alpha",1f,0f,1f);
       PropertyValuesHolder propertyValuesHolder1 = PropertyValuesHolder.ofFloat("scaleX",1f,0f,1f);         PropertyValuesHolder propertyValuesHolder2 = PropertyValuesHolder.ofFloat("scaleY",1f,0f,1f);
       ObjectAnimator.ofPropertyValuesHolder(v,propertyValuesHolder,propertyValuesHolder1,propertyValuesHolder2).setDuration(3000).start();
         //这里的动画是一个图片的缩放,同时伴随着alpha的变化。注意这里使用的是PropertyValuesHolder来添加动画。

2、ValueAnimator(不针对于某有一个组件)
和ObjectAnimator用法很类似,简单看一下用view垂直移动的动画代码:
自由落体示例:

     final View view = v;
         DisplayMetrics displayMetrics = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
         //定义一个动画
         ValueAnimator valueAnimator = ValueAnimator.ofFloat(view.getY(),displayMetrics.heightPixels).setDuration(500);
         //监听动画的每一个动作
         valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
          @Override
          public void onAnimationUpdate(ValueAnimator animation) {
              view.setTranslationY((Float) animation.getAnimatedValue());
             }
          });
          valueAnimator.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值