当前位置: 移动技术网 > IT编程>移动开发>Android > Android启动页面定时跳转的三种方法

Android启动页面定时跳转的三种方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

劳拉失魂记,清炖鱼的做法视频,东山再起的意思

从我所做的项目来看,几乎都少不了开始页面,启动页面的作用能够打广告、发公告、做缓存处理、更新数据等等!android实现开始页面的跳转,就是打开一个android手机app的欢迎界面后跳转到指定界面,下面就让我简单介绍下比较常用的开始页面的跳转方法吧。

一、在oncreate里设置个timer,然后建立intent指向你要调用的activity。设置timer 任意秒后执行startactivity即可!(timer是一种定时器工具,用来在一个后台线程计划执行指定任务,它可以计划执行一个任务一次或反复多次)

 final intent it = new intent(this, activity1.class); //你要转向的activity   
    timer timer = new timer();  
    timertask task = new timertask() {  
      @override  
      public void run() {   
      startactivity(it); //执行  
       }  
     }; 
    timer.schedule(task, 1000 * 10); //10秒后 

二、利用子线程在run方法中设置跳转,用handler来执行。

public class welcomeactivity extends activity { 
 
@override 
protected void oncreate(bundle savedinstancestate) { 
<span style="white-space:pre"> </span>// todo auto-generated method stub 
<span style="white-space:pre"> </span>super.oncreate(savedinstancestate); 
<span style="white-space:pre"> </span>setcontentview(r.layout.welcome); 
<span style="white-space:pre"> </span>new handler().postdelayed(r, 1000);// 1秒后关闭,并跳转到主页面 
} 
 runnable r = new runnable() { 
 @override 
 public void run() { 
 // todo auto-generated method stub 
 intent intent = new intent(); 
 intent.setclass(welcomeactivity.this, mainactivity.class); 
 startactivity(intent); 
 finish(); 
   } 
  }; 
} 

三、以动画形式(旋转、缩放等)作为开始页面,这种方法在项目中也是比较常用的,比第一种方法多了动画集,具体看代码注释!

开始动画页面布局splashmain.xml

<?xml version="1.0" encoding="utf-8"?> 
<linearlayout xmlns: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

public class <span style="font-family: arial, helvetica, sans-serif;">splash</span><span style="font-family: arial, helvetica, sans-serif;">activity extends activity {</span> 
   
  private imageview iv_mainview; 
  private animationset as; 
 
  @override 
  protected void oncreate(bundle savedinstancestate) { 
    // todo auto-generated method stub 
    super.oncreate(savedinstancestate); 
     
    //去掉标题 
    //requestwindowfeature(window.feature_no_title); 
    initview();// 初始化界面 
 
    startanimation();//开始播放动画  
 
    initevent();//初始化事件 
  } 
 
   
  private void initevent() { 
    //1、监听动画播放完的事件,只是一处用到事件就用匿名类对象,多处声明成员变量用  
    as.setanimationlistener(new animationlistener() { 
 
      @override 
      public void onanimationstart(animation animation) { 
         
      } 
 
      @override 
      public void onanimationrepeat(animation animation) { 
 
      } 
 
      //监听动画播放完 
      @override 
      public void onanimationend(animation animation) { 
         
        //  
        intent main = new intent(<span style="font-family: arial, helvetica, sans-serif;">splash</span><span style="font-family: arial, helvetica, sans-serif;">activity </span><span style="font-family: arial, helvetica, sans-serif;">.this,mainactivity.class);</span> 
        startactivity(main);//主界面 
       
        //关闭自己 
        finish(); 
      } 
    }); 
  } 
 
  /** 
   * 开始播放动画:旋转,缩放,渐变 
   */ 
  private void startanimation() { 
    // false 代表动画集中每种动画都采用各自的动画插入器(数字函数) 
    as = new animationset(false); 
 
    //旋转动画,锚点 
    rotateanimation ra = new rotateanimation( 
        0, 360, 
        animation.relative_to_self, 0.5f, 
        animation.relative_to_self,0.5f);//设置锚点为图片的中心点 
    // 设置动画播放时间 
    ra.setduration(2000); 
    ra.setfillafter(true);//动画播放完之后,停留在当前状态  
 
    // 添加到动画集 
    as.addanimation(ra); 
 
    // 渐变动画 
    alphaanimation aa = new alphaanimation(0, 1);//由完全透明到不透明  
    //  
    aa.setduration(2000); 
    aa.setfillafter(true);// 
 
    //  
    as.addanimation(aa); 
 
    // 缩放动画 
    scaleanimation sa = new scaleanimation( 
        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、监听动画播放完的事件 
     
 
  } 
 
  private void initview() { 
    // 设置主界面 
    setcontentview(r.layout.onemain); 
 
    // 获取背景图片 
    iv_mainview = (imageview) findviewbyid(r.id.iv_splash_mainview); 
 
  } 
 
     
   
   
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网