1) 属性动画例子:
代码实现:
public void onClick(View v) {
v.animate().rotation(360).setDuration(1000).start();
}
XML实现:
@Override
public void onClick(View v) {
ObjectAnimator animator = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.animate_me);
animator.setTarget(v);
animator.start();
}
animate_me.xml
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360"
>
</objectAnimator>
2) 动画集合的使用
代码实现:
AnimatorSet set = new AnimatorSet();
set.setDuration(1000);
set.playSequentially(
ObjectAnimator.ofFloat(v,"translationX",0,200),
ObjectAnimator.ofFloat(v,"translationY",0,200),
ObjectAnimator.ofFloat(v,"translationY",200,0),
ObjectAnimator.ofFloat(v,"translationX",200,0)
);
set.start();
XML实现:
调用xml文件:
AnimatorSet animator = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.animate_me);
animator.setTarget(v);
animator.start();
R.animator.animate_me.xml文件:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="sequentially">
<objectAnimator android:propertyName="translationX" android:valueFrom="0" android:valueTo="200" android:duration="1000"/>
<objectAnimator android:propertyName="translationY" android:valueFrom="0" android:valueTo="200" android:duration="1000"/>
<objectAnimator android:propertyName="translationY" android:valueFrom="200" android:valueTo="0" android:duration="1000"/>
<objectAnimator android:propertyName="translationX" android:valueFrom="200" android:valueTo="0" android:duration="1000"/>
</set>