从带有启动动画的欢迎页面SplashActivity跳转到MainActivity

需求:启动欢迎页面SplashActivity(带有启动动画),启动动画一旦结束,自动跳转到MainActivity。

前面初始化view的代码:

/**初始化view*/
private void initView() {
rLayout=(RelativeLayout) findViewById(R.id.rl_splash_animContainer);
}

接下来用以下3种方式实现跳转,分别分析:

第一种:Animation animation=AnimationUtils.loadAnimation(this, R.anim.splash_anim_1);
rLayout.startAnimation(animation);//异步返回(发起任务的方法瞬间结束,但是任务什么时候结束根本不知道)
/*这种方法看不到动画,一下就跳到MainActivity**/
 startActivity(new Intent(this,MainActivity.class));
  finish();

第二种:Animation animation=AnimationUtils.loadAnimation(this, R.anim.splash_anim_1);
rLayout.startAnimation(animation);//异步返回(发起任务的方法瞬间结束,但是任务什么时候结束根本不知道)

/*这种方法能看到动画,但是延迟时间不好控制,主要是当修改了动画时间后,容易忘记修改延迟时间*/
 new Handler().postDelayed(new Runnable() {

@Override
public void run() {
startActivity(new Intent(SplashActivity.this,MainActivity.class));
finish();
}
}, 4000);

第三种:Animation animation=AnimationUtils.loadAnimation(this, R.anim.splash_anim_1);
rLayout.startAnimation(animation);//异步返回(发起任务的方法瞬间结束,但是任务什么时候结束根本不知道)

//以下这种给动画设置监听器的方式,能更好地保证用户所需的顺序
animation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub

}

@Override
public void onAnimationEnd(Animation animation) {
startActivity(new Intent(SplashActivity.this,MainActivity.class));
finish();
}
});

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值