2013-04-23 76 views
1

我有三個圖像與我,我希望他們出現在第一個佈局xml像飛濺視圖,以便他們只能被查看一次,即該活動將被稱爲只有一次當應用程序獲取的安裝,或者應用程序獲取一個新的更新,否則應用程序應該總是從第二個活動開始,我不知道我應該如何開始使用此:Android設置啓動畫面(活動)像Iphone Part1

enter image description here

任何一個可以告訴我任何想法如何這可以做到。

僅顯示一次飛濺。這個問題的

接着的部分是here

編碼將不勝感激。

+0

你有什麼問題的活動?在第一次運行中顯示飛濺?或兩個創建啓動畫面? – stinepike 2013-04-23 07:27:10

+0

他們都是:( – iOSBee 2013-04-23 07:29:42

+1

初始屏幕是Android上的反模式,你可能要考慮在初始化應用程序時不要顯示初始屏幕 – keyboardsurfer 2013-04-23 07:33:21

回答

4

保存在預置一個標誌,當你啓動應用程序,你已經做了之後歡迎屏幕的東西。在顯示歡迎屏幕之前檢查此標誌。如果標誌存在(換句話說,如果不是第一次),不要顯示它。

In your activity: 

SharedPreferences mPrefs; 
final String welcomeScreenShownPref = "welcomeScreenShown"; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this); 

    // second argument is the default to use if the preference can't be found 
    Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false); 

    if (!welcomeScreenShown) { 
     // here you can launch another activity if you like 
     // the code below will display a popup 

     String whatsNewTitle = getResources().getString(R.string.whatsNewTitle); 
     String whatsNewText = getResources().getString(R.string.whatsNewText); 
     new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle(whatsNewTitle).setMessage(whatsNewText).setPositiveButton(
       R.string.ok, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }).show(); 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.putBoolean(welcomeScreenShownPref, true); 
     editor.commit(); // Very important to save the preference 
    } 

} 
+0

Thx dude這將解決我的第二個問題,即只顯示一次飛濺......關於第一個問題的任何想法(使滾動視圖閃爍表單並在滾動完成時切換到第二個活動) – iOSBee 2013-04-23 07:45:20

0

試試這個:

 public class MainActivity extends Activity { 

private Thread mSplashThread; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    try { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.splash); 

     final MainActivity sPlashScreen = this; 

     mSplashThread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        synchronized (this) { 
         wait(4000); 
        } 
       } catch (InterruptedException ex) { 
       } 

       finish(); 
       Intent intent = new Intent(); 
       intent.setClass(sPlashScreen, StartNewActivity.class);// <-- Activity you want to start after Splash 
       startActivity(intent); 
      } 
     }; 

     mSplashThread.start(); 
    } catch (Exception e) { 
    } 
} 

@Override 
public boolean onTouchEvent(MotionEvent evt) { 
    try { 
     if (evt.getAction() == MotionEvent.ACTION_DOWN) { 
      synchronized (mSplashThread) { 
       mSplashThread.notifyAll(); 
      } 
     } 
    } catch (Exception e) { 
    } 
    return true; 

} 

}

你把圖像中的splash.xml顯示

+1

老兄我想要它手動定時器將自動更改圖像後特定時間,我想滾動視圖或任何其他方式,我可以處理這個概率... – iOSBee 2013-04-23 07:37:03

0

要做到這一點,你必須檢測你的應用程序的第一次啓動。要做到這一點,你可以存儲一個布爾值作爲@Nirav建議。

而對於閃屏,你可以考慮使用FragmentsViewPager創建將只顯示首次