许多安卓开发了Splash界面后需要跳转到主界面,现有两种常用的方法,方法如下首先给在给Splash添加动画,方法是在res目录下新建一个anim文件夹在里面新建一个xml文件,附上需要给Splash添加的动画事件:
例如:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0"
android:toAlpha="1"
android:duration="2000"
/>
</set>
然后在SplashActivity文件中添加如下代码,
方法一:就是设置一个监听器去,监听当事件执行结束,跳转页面。
public class SplashActivity extends Activity {
RelativeLayout animContainer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
initAnim();
}
/**
* 动画相关
*/
private void initAnim() {
animContainer = (RelativeLayout) findViewById(R.id.rl_splash_animcontainer);
Animation anim = AnimationUtils.loadAnimation(this, R.anim.splash_anim);
animContainer.startAnimation(anim);
anim.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) {
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
});
}
方法二:就是新启一个Handler对象调用它的相关方法延迟跳转事件的执行,代码如下:
在上面的initAnim()方法中修改成:
Animation anim = AnimationUtils.loadAnimation(this, R.anim.splash_anim);
animContainer.startAnimation(anim);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
}, 3000);
推荐使用第一种方法。