Android启动页面定时跳转的三种方法
从我所做的项目来看,几乎都少不了开始页面,启动页面的作用能够打广告、发公告、做缓存处理、更新数据等等!Android实现开始页面的跳转,就是打开一个Android手机APP的欢迎界面后跳转到指定界面,下面就让我简单介绍下比较常用的开始页面的跳转方法吧。
一、在onCreate里设置个Timer,然后建立Intent指向你要调用的Activity。设置Timer任意秒后执行startActivity即可!(Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,它可以计划执行一个任务一次或反复多次)
finalIntentit=newIntent(this,Activity1.class);//你要转向的Activity
Timertimer=newTimer();
TimerTasktask=newTimerTask(){
@Override
publicvoidrun(){
startActivity(it);//执行
}
};
timer.schedule(task,1000*10);//10秒后
二、利用子线程在run方法中设置跳转,用Handler来执行。
publicclassWelcomeActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
<spanstyle="white-space:pre"></span>//TODOAuto-generatedmethodstub
<spanstyle="white-space:pre"></span>super.onCreate(savedInstanceState);
<spanstyle="white-space:pre"></span>setContentView(R.layout.welcome);
<spanstyle="white-space:pre"></span>newHandler().postDelayed(r,1000);//1秒后关闭,并跳转到主页面
}
Runnabler=newRunnable(){
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
Intentintent=newIntent();
intent.setClass(WelcomeActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
};
}
三、以动画形式(旋转、缩放等)作为开始页面,这种方法在项目中也是比较常用的,比第一种方法多了动画集,具体看代码注释!
开始动画页面布局splashMain.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/iv_splash_mainview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/splash_bg" android:src="@drawable/splash_sheep_n"/> </LinearLayout>
开始动画页面splashActivity.java
publicclass<spanstyle="font-family:Arial,Helvetica,sans-serif;">splash</span><spanstyle="font-family:Arial,Helvetica,sans-serif;">ActivityextendsActivity{</span>
privateImageViewiv_mainview;
privateAnimationSetas;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
//TODOAuto-generatedmethodstub
super.onCreate(savedInstanceState);
//去掉标题
//requestWindowFeature(Window.FEATURE_NO_TITLE);
initView();//初始化界面
startAnimation();//开始播放动画
initEvent();//初始化事件
}
privatevoidinitEvent(){
//1、监听动画播放完的事件,只是一处用到事件就用匿名类对象,多处声明成员变量用
as.setAnimationListener(newAnimationListener(){
@Override
publicvoidonAnimationStart(Animationanimation){
}
@Override
publicvoidonAnimationRepeat(Animationanimation){
}
//监听动画播放完
@Override
publicvoidonAnimationEnd(Animationanimation){
//
Intentmain=newIntent(<spanstyle="font-family:Arial,Helvetica,sans-serif;">splash</span><spanstyle="font-family:Arial,Helvetica,sans-serif;">Activity</span><spanstyle="font-family:Arial,Helvetica,sans-serif;">.this,MainActivity.class);</span>
startActivity(main);//主界面
//关闭自己
finish();
}
});
}
/**
*开始播放动画:旋转,缩放,渐变
*/
privatevoidstartAnimation(){
//false代表动画集中每种动画都采用各自的动画插入器(数字函数)
as=newAnimationSet(false);
//旋转动画,锚点
RotateAnimationra=newRotateAnimation(
0,360,
Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0.5f);//设置锚点为图片的中心点
//设置动画播放时间
ra.setDuration(2000);
ra.setFillAfter(true);//动画播放完之后,停留在当前状态
//添加到动画集
as.addAnimation(ra);
//渐变动画
AlphaAnimationaa=newAlphaAnimation(0,1);//由完全透明到不透明
//
aa.setDuration(2000);
aa.setFillAfter(true);//
//
as.addAnimation(aa);
//缩放动画
ScaleAnimationsa=newScaleAnimation(
0,1,0,1,
Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0.5f);
//
sa.setDuration(2000);
sa.setFillAfter(true);//
//
as.addAnimation(sa);
//播放动画
iv_mainview.startAnimation(as);
//动画播完进入下一个界面:向导界面或者主界面
//1、监听动画播放完的事件
}
privatevoidinitView(){
//设置主界面
setContentView(R.layout.onemain);
//获取背景图片
iv_mainview=(ImageView)findViewById(R.id.iv_splash_mainview);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。