Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android啟動頁面定時跳轉的三種方法

Android啟動頁面定時跳轉的三種方法

編輯:關於Android編程

從我所做的項目來看,幾乎都少不了開始頁面,啟動頁面的作用能夠打廣告、發公告、做緩存處理、更新數據等等!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 > </span>// TODO Auto-generated method stub 
<span > </span>super.onCreate(savedInstanceState); 
<span > </span>setContentView(R.layout.welcome); 
<span > </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 >splash</span><span >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 >splash</span><span >Activity </span><span >.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); 
 
  } 
 
     
   
   
} 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved