我想为 2 个图像在活动上制作 2 个动画,并且我想在 2 个条件下做到这一点:
1. 我想在活动完成加载到页面后启动动画,所以onCreate
我没有将动画代码放在下面onResume
那样可以么?有更好的方法吗?
2.我希望第二个动画只有在第一个动画完成后才开始......
谢谢
你会想要使用Animation.AnimationListner你可以在你的第一个动画上设置一个,当动画完成时会得到一个回调。在该回调中,您可以添加将启动第二个动画的代码。
根据您编写的 API 级别,您可以使用AnimationSet
或AnimatorSet
. 此外,如果您正在扩展View
或其子类之一,您可以覆盖View.onAnimationStart()
and View.onAnimationFinish()
。或者使用蒂姆提到的监听器。
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);
}
};
}