逐帧动画:
xml:
item设置图片资源以及持续时间
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/f3" android:duration="3000"></item>
<item android:drawable="@drawable/f1"
android:duration="2000"></item>
<item android:drawable="@drawable/f2"
android:duration="1000"></item>
</animation-list>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ff"
android:background="@drawable/flay"
/>
java
AnimationDrawable drawable;
ff= (ImageView) findViewById(R.id.ff);
//设置资源
drawable= (AnimationDrawable) ff.getBackground();
drawable.start();
补间动画:
分别为缩放,透明,旋转,位移,以及相关属性
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1.0"
android:toXScale="0.5"
android:fromYScale="1.0"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="8000"></scale>
<alpha
android:fromAlpha="1"
android:toAlpha="0.5"
android:duration="3000"></alpha>
<rotate
android:fromDegrees="0"
android:toDegrees="180"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"></rotate>
<translate
android:fromXDelta="20"
android:toXDelta="800"
android:fromYDelta="30"
android:toYDelta="1300"
android:duration="8000"></translate>
</set>
Animation anim;
//加载资源
anim= AnimationUtils.loadAnimation(this,R.anim.anim);
//开始动画
ff.startAnimation(anib);
属性动画:
xml
有执行顺序和其它属性
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="2000"
android:propertyName="translationX"
android:valueFrom="-500"
android:valueTo="10"
android:valueType="floatType" >
</objectAnimator>
<set android:ordering="together" >
<objectAnimator
android:duration="3000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360"
android:valueType="floatType" >
</objectAnimator>
<set android:ordering="sequentially" >
<objectAnimator
android:duration="1500"
android:propertyName="alpha"
android:valueFrom="1"
android:valueTo="0"
android:valueType="floatType" >
</objectAnimator>
<objectAnimator
android:duration="1500"
android:propertyName="alpha"
android:valueFrom="0"
android:valueTo="1"
android:valueType="floatType" >
</objectAnimator>
</set>
</set>
</set>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hahahahaaaa"
android:layout_centerInParent="true"
android:id="@+id/fram"/>
//加载资源,设置显示到的组件
textview= (TextView) findViewById(R.id.fram);
Animator animator = AnimatorInflater.loadAnimator(this, R.anim.fram);
animator.setTarget(textview);
animator.start();
属性动画代码实现:
//设置了动画的顺序,持续时间,以及监听。
ObjectAnimator moveIn = ObjectAnimator.ofFloat(textview, "translationX", -500f, 0f);
ObjectAnimator rotate = ObjectAnimator.ofFloat(textview, "rotation", 0f, 360f);
ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f);
AnimatorSet animSet = new AnimatorSet();
animSet.play(rotate).with(fadeInOut).after(moveIn);
animSet.setDuration(5000);
animSet.start();
animSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});