從我所做的項目來看,幾乎都少不了開始頁面,啟動頁面的作用能夠打廣告、發公告、做緩衝處理、更新資料等等!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); } }
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。