码迷,mamicode.com
首页 > 其他好文 > 详细

Property-属性动画

时间:2015-06-03 23:14:26      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

今天第一次接触到属性动画。参考着

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38067475

的博客,自己学习下。

它的区别跟View Animation的区别现在还不是很清除,先跳过这个阶段,直接在代码中体验二者的不同吧。

一、ObjectAnimator

它的使用最简单,感觉跟View Animation相似,只是它的使用要比前者简单的多,一句代码就搞定了,看如下代码跟效果

ObjectAnimator.ofFloat(view, "rotationY", 0.0f, 360.0f).
    setDuration(2000)
    .start();

解释

ofFloat的参数的意义

view:需要添加动画的控件

"rotationY"-这个是动画效果(绕y轴旋转)(如果不是系统提供的动画样式,那么它不会报错,而是没有效果。但是,它的监听事件会执行。看下面介绍)

其他样式

"alpha"-透明度

0.0f(360.f)-是开始跟结束角度

监听事件

objectAnimator.addUpdateListener(new AnimatorUpdateListener() {

            @Override
            public void onAnimationUpdate(ValueAnimator arg0) {
                // TODO Auto-generated method stub
                Log.e("123", "arg0==="+arg0.getAnimatedValue());
            }
        });

看打印结果

  1 06-03 17:18:03.990: E/123(19763): arg0===1.0
  2 06-03 17:18:04.004: E/123(19763): arg0===1.0
  3 06-03 17:18:04.023: E/123(19763): arg0===0.9997773
  4 06-03 17:18:04.042: E/123(19763): arg0===0.9991095
  5 06-03 17:18:04.061: E/123(19763): arg0===0.99799716
  6 06-03 17:18:04.081: E/123(19763): arg0===0.9964413

它其实就是实时监控透明度的变化(即使你的动画类型不存在,这个过程执行,只是界面上没有什么变化)

如果你想利用ObjectAnimator执行多条语句,你可以使用PropertyValuesHolder

如下方法

public void startAnimatorHode(View view){
    
PropertyValuesHolder pv1 = PropertyValuesHolder.ofFloat("alpha", 1.0f,0.0f);
PropertyValuesHolder pv2 = PropertyValuesHolder.ofFloat("scaleX", 1.0f,0.0f);
PropertyValuesHolder pv3 = PropertyValuesHolder.ofFloat("scaleY", 1.0f,0.0f);
objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, pv1,pv2,pv3);
objectAnimator.setDuration(2000);
objectAnimator.start();
}

它会同时执行多条语句

2

Property-属性动画

标签:

原文地址:http://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_property_1563211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!