2012-08-15 82 views
0

首先讓我告訴你們,我是Android應用程序開發的全新手。 我想知道如何啓動主屏幕和應用程序主屏幕。即每當您點擊某個應用程序時,首先會顯示一些徽標屏幕,然後自動跳轉到應用程序的主屏幕。 我有我的應用程序運行的主屏幕,我只是想在用戶點擊應用程序時添加某種標誌屏幕。Android主屏幕發射器

我做了這一點點研究,我發現了

<intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

如果我添加這標誌活動,則如何調用app_home_screen活動自動 希望我足夠清楚解釋的問題。

+1

你的意思是像一個[閃屏](http://en.wikipedia.org/wiki/Splash_screen)? – iTurki 2012-08-15 18:35:08

+0

我尋找啓動畫面,是的,我只想要該功能。 感謝您的期限,讓我谷歌。 – user1544460 2012-08-15 18:41:03

回答

1

您可以嘗試的一種解決方案是將徽標加載爲主要活動,並在調用第二個活動(即「真正的」主頁)前讓應用暫停幾秒鐘。

要開始,你將使用「意向」如

Intent myIntent = new Intent(myFirstActivity.this, realHomePage.class); 
myFirstActivity.this.startActivity(myIntent); 

是第二次活動只需確保延長您的主頁類Activity類

0

有被調用時的主要活動你的應用圖標被點擊是一個只有你的標誌的視圖。簡單一點,就是一個RelativeLayout和一個ImageView。延遲一段時間後,讓這項活動以意向開始您的實際主要活動。

+0

我試過這個,使用了SystemClock.sleep(TIME),但是在這種情況下,即使我在sleep之前設置了setcontentView,也會在TIME秒後出現Logo屏幕。 ?你知道原因嗎?我猜setcontentview會在方法退出之前執行? – user1544460 2012-08-16 13:36:21

2

您需要:

  • 添加一個新的活動SplashActivity,這將是您的應用程序的啓動活動。
  • 當您的應用程序啓動時,啓動您的SplashActivity並等待一段時間。
  • 當您完成等待時,開始您的MainActivity並完成SplashActivity

這裏是一個很好的例子:

SplashScreenActivity:

public class SplashScreenActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_layout); //You need to define it in your layouts 
    final int welcomeScreenDisplay = 3000; //splash lasts for 3 sec. You can change it 
    /** create a thread to show splash up to splash time */ 
    Thread welcomeThread = new Thread() { 
     int wait = 0; 
     @Override 
     public void run() { 
      try { 
       super.run(); 
       while (wait < welcomeScreenDisplay) { 
        sleep(100); 
        wait += 100; 
       } 
      } catch (Exception e) { 
       System.out.println("EXc=" + e); 
      } finally { 
       startActivity(new Intent(SplashScreenActivity.this, MainScreenActivity.class)); 
       finish(); 
      }} 
     }; 
     welcomeThread.start(); 

    } 
} 

而且不要忘記到活動添加到您的清單文件:

<activity 
    android:name=".SplashScreenActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
<activity 
    android:name=".MainScreenActivity" 
    android:label="@string/app_name" > 
</activity> 
+1

爲什麼不能使用SLEEP方法而不是創建welcomeThread?希望我可以在Android中使用SLEEP。 實現這種方式的任何特定原因? – user1544460 2012-08-15 19:23:52

+0

你的意思是使用sleep()而沒有線程? – iTurki 2012-08-15 19:25:13

2

雖然其他答案肯定有效,這是避免單獨進行一項活動的另一種方法爲您的徽標:

  1. 根據需要放置ImageView(即,覆蓋整個屏幕)放在主要活動佈局中的其他元素之前(它們將具有屏幕外的初始佈局)。
  2. 在onCreate中調用setContentView之後,運行SystemClock.sleep(LOGO_TIME),其中LOGO_TIME是一個整數,表示希望顯示徽標的毫秒數。
  3. 最後,調用setVisibility(View.GONE)。

您的ImageView將消失,其他佈局元素將落入其位置。