我想在2张图片的活动上制作2个动画,我想用2个条件做这个:
1.我希望在活动结束后加载到页面时启动动画,所以不要将动画代码放在onCreate
下,而是将它放在onResume
下面就可以了吗?还有更好的方法吗?
2.我希望第二个动画只在第一个动画结束后开始...
由于
答案 0 :(得分:1)
您将要使用Animation.AnimationListner您可以在第一个动画上设置一个动画完成后将获得回调的动画。在回调中,您可以添加将启动第二个动画的代码。
答案 1 :(得分:1)
根据您编码的API级别,您可以使用AnimationSet
或AnimatorSet
。此外,如果您要扩展View
或其中一个子类,则可以覆盖View.onAnimationStart()
和View.onAnimationFinish()
。或者使用听众Tim提及。
答案 2 :(得分:0)
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);
}
};
}