2014-07-03 22 views
-3

我需要顯示啓動佈局文件,直到操作完成並且更改爲主佈局。 這裏是一個例子。在同一活動中創建啓動畫面

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash_screen); 
    //Here app is copying files or something other it doesn't mater. 
     RelativeLayout panel = new RelativeLayout(this); 
    //Here is creating of main layout 

     setContentView(panel); 

我需要顯示啓動畫面雖然操作執行(間兩種方法的setContentView)比我需要設置主要佈局, 我已經試過這樣做,但它只顯示黑屏,只比顯示主要佈局(面板)。 問題在哪裏? Thx提前幫忙。

回答

0

你可以做這樣的事情,如果你不是在setContentView(R.layout.main)

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 

    handler = new Handler(); 

    new AsyncTask<Void, Void, Void>() { 

    @Override 
    protected Void doInBackground(Void... params) { 
      //Do some heavy stuff 
      return null; 
     } 

     @Override 
     public void onPostExecute(Void result){ 
      handler.post(new Runnable(){ 
       @Override 
       public void run(){ 
        setContentView(R.layout.main); 
       } 
      }); 
     } 
    }.execute(); 
} 

編輯幹過重的東西,恰恰您可以檢查此True SplashScreen

+0

WORKS GREAT !!謝謝 !!! – user3796197

+0

很高興幫助你。快樂編碼:) – Aniruddha

0

這裏是我的項目抽取的樣本:

佈局頁面,您可以根據需要自定義進度欄:

`

<ProgressBar 
    android:id="@+id/inquiry_progress" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:layout_gravity="center" 
    android:visibility="gone" 
    android:indeterminateDrawable="@drawable/loading_progress"></ProgressBar> 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal|center_vertical" 
    android:id="@+id/panel_inquiry" 
> 
    ..... 

</FrameLayout> 

`

Java源代碼:

私人進度進度; private FrameLayout inquiryFrame;

inquiryFrame =(FrameLayout)findViewById(R.id.panel_inquiry); progressBar =(ProgressBar)findViewById(R.id.inquiry_progress);

爲了顯示啓動畫面/做工作背景

私人無效callService(){

progressBar.setVisibility(View.VISIBLE); 
    inquiryFrame.setVisibility(View.GONE); 
    new ServerReqAsync().execute(this 
      , ServiceConstants.getRequestList()); 

} 

當後臺作業完成後,只需查看活動默認佈局 progressBar.setVisibility(查看.GONE); inquiryFrame.setVisibility(View.VISIBLE);

謝謝