我想在2个图像的活动上制作2个动画,我想用2个条件做:
1.我想在活动完成后开始动画以加载到页面,所以而不是把动画代码放在onCreate
下,我把它放在onResume
下,那可以吗?有更好的方法来做到这一点?
2.我希望第一个动画结束后的第二个动画才会开始...一个接一个的两个动画
感谢
我想在2个图像的活动上制作2个动画,我想用2个条件做:
1.我想在活动完成后开始动画以加载到页面,所以而不是把动画代码放在onCreate
下,我把它放在onResume
下,那可以吗?有更好的方法来做到这一点?
2.我希望第一个动画结束后的第二个动画才会开始...一个接一个的两个动画
感谢
你要使用Animation.AnimationListner您可以设置一个你的第一个动画,将得到动画完成时的回调。在该回调中,您可以添加将启动第二个动画的代码。
根据您编码的API级别,您可以使用AnimationSet
或AnimatorSet
。另外,如果您正在扩展View
或其中一个子类,则可以覆盖View.onAnimationStart()
和View.onAnimationFinish()
。或者使用Tim提到的听众。
感谢您的信息... – choop
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);
}
};
}
你可以把动画onResume()它的工作。每当你的应用程序从onResume开始,那么你的动画就开始了。如果你把你的动画放在onCreate方法中,那么当你的应用程序启动的时候,它会首次调用你的应用程序。在暂停模式,然后你回到你的应用程序。当时调用Resume方法您的动画未启动动画写入onCreate方法 –
感谢您的信息.. – choop
好的我会尝试,但关于我的第一个问题,是否可以将动画代码放在onResume下? – choop
当然,只要你确定你希望它每次都在onResume被调用时发生。和(我提到这是一个用户而不是程序员)不会使动画总持续时间很长。如果持续时间太长,我觉得我不得不等待使用它,那么它开始困扰着我。 – FoamyGuy
谢谢,解决了这个问题! – choop