Android动画(3)--属性动画

简介

  • 3.0后
  • AnimationSet, ObjectAnimator 类
  • ObjectAnimator类动画时直接改变其相关属性
  • View改变,响应点击的位置一样改变

例子

ObjectAnimator animator = ObjectAnimator.ofFloat(
view,   //目标view 
"translationX",  //属性
300) //属性值

animator.setDuration(300);
animator.start();


属性值:
translationX, translationY
rotation, rotationX, rotationY
scaleX, scaleY
pivotX, pivotY
x,y
alpha


监听事件:
addUpdateListener
addListener(new AnimatorListener(){}


属性集

PropertyValuesHolder实现:

PropertyValuesHolder pv1 = PropertyValuesHolder.ofFloat("translationX", 300f);
PropertyValuesHolder pv2 = PropertyValuesHolder.ofFloat("scaleX", 1f,0.1f);
PropertyValuesHolder pv3 = PropertyValuesHolder.ofFloat("alpha", 0.5f);

ObjectAnimator.ofPropertyValuesHolder (view, pv1,pv2,pv3).setDuration(1000).start();

AnimatorSet实现:

ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX", 300;
ObjectAnimator animator1 = ObjectAnimator.ofFloat(view, "scaleX", 2.0f,0.1f);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(view, "alpha", 0.5f);
AnimatorSet set = new AnimatorSet();
set.setDuration(1000);
set.playTogether(animator,animator1,animator2);
set.start();

XML实现

<objectAnimator xmlns:android="..."
    android:duration="1000"
    android:propertyName="scaleX"
    android:valueFrom="1.0"
    android:valueTo="2.0"
    android:valueType="floatType">
</objectAnimator>

使用
Animator anim=AnimatorInflater.loadAnimator(this, R.animator.scalex);
anim.setTarget(view);
anim.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值