2つの画像のアクティビティで2つのアニメーションを作成し、2つの条件で作成したい:
1。アクティビティがページに読み込まれた後にアニメーションを開始したいので、アニメーションコードを下に置く代わりに下にonCreate
置きますonResume
それは大丈夫ですか?それを行うためのより良い方法はありますか?
2.最初のアニメーションが終了した後にのみ2番目のアニメーションを開始したい...
ありがとう
Animation.AnimationListnerを使用する必要があります。アニメーションが完了したときにコールバックを取得する最初のアニメーションに設定できます。そのコールバック内に、2 番目のアニメーションを開始するコードを追加できます。
コーディングする API レベルに応じて、AnimationSet
またはを使用できますAnimatorSet
。View
また、またはそのサブクラスの 1 つを拡張している場合はView.onAnimationStart()
、 andをオーバーライドできますView.onAnimationFinish()
。または、Tim が言及しているリスナーを使用します。
public class SplashActivity extends Activity{
Animation FadeInanimation, FadeOutanimation;
ImageView img;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
img= (ImageView) findViewById(R.id.img);
//Your Code Block....
FadeInanimation = AnimationUtils.loadAnimation(this,R.anim.image_fadein);
//FadeInanimation.setRepeatCount(Animation.INFINITE);
//FadeInanimation.setRepeatMode(Animation.RESTART);
FadeInanimation.setAnimationListener(FadeInAnimationListener);
FadeOutanimation = AnimationUtils.loadAnimation(this,R.anim.image_fadeout);
//FadeOutanimation.setRepeatCount(Animation.INFINITE);
//FadeOutanimation.setRepeatMode(Animation.RESTART);
FadeOutanimation.setAnimationListener(fadeOutAnimationListener);
img.startAnimation(FadeInanimation);
}
AnimationListener FadeInAnimationListener = new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
plane.startAnimation(FadeOutanimation);
}
};
}