前面所有的Demo都是单一的动画,根据需求,我们可以将两种以上的动画效果混合到一个动画中。
一、通过java实现动画:
package com.jikexueyuan.anim;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.AnimationUtils;
import android.view.animation.TranslateAnimation;
import android.widget.Toast;
public class MainActivity extends Activity {
private AnimationSet as;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
as= new AnimationSet(true);
as.setDuration(1000);
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(1000);
as.addAnimation(aa);
TranslateAnimation ta = new TranslateAnimation(200, 0, 200, 0);
ta.setDuration(1000);
as.addAnimation(ta);
findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
arg0.startAnimation(as);
// Animation a = AnimationUtils.loadAnimation(MainActivity.this, R.anim.anim);
// a.setAnimationListener(new Animation.AnimationListener() {
//
// @Override
// public void onAnimationStart(Animation animation) {
// }
//
// @Override
// public void onAnimationRepeat(Animation animation) {
// }
//
// @Override
// public void onAnimationEnd(Animation animation) {
// Toast.makeText(MainActivity.this, "Animation end", Toast.LENGTH_SHORT).show();
}
// });
// arg0.startAnimation(a);
// }
});
}
}
二、通过xml实现动画:
package com.jikexueyuan.anim;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Toast;
public class MainActivity extends Activity {
// private AnimationSet as;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// as= new AnimationSet(true);
// as.setDuration(1000);
//
// AlphaAnimation aa = new AlphaAnimation(0, 1);
// aa.setDuration(1000);
// as.addAnimation(aa);
//
// TranslateAnimation ta = new TranslateAnimation(200, 0, 200, 0);
// ta.setDuration(1000);
// as.addAnimation(ta);
findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// arg0.startAnimation(as);
Animation a = AnimationUtils.loadAnimation(MainActivity.this, R.anim.anim);
a.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Toast.makeText(MainActivity.this, "Animation end", Toast.LENGTH_SHORT).show();
}
});
arg0.startAnimation(a);
}
});
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:shareInterpolator="true" >
<alpha
android:fromAlpha="0"
android:toAlpha="1" />
<translate
android:fromXDelta="200"
android:fromYDelta="200"
android:toXDelta="0"
android:toYDelta="0" />
</set>