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

來源:互聯網
上載者:User

從我所做的項目來看,幾乎都少不了開始頁面,啟動頁面的作用能夠打廣告、發公告、做緩衝處理、更新資料等等!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);    }             } 

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.