2016-06-16 25 views
-1

Ich bin Anfänger und ich möchte Splash-Screen zeigen, aber mein Chef möchte Fragment verwenden. Ich weiß nicht, wie ich es in meiner MainActivity implementieren soll. Ich weiß, dass ich Handler mit Zeit und Stack Layout verwenden muss, aber ich habe nicht gefunden wie. DankSplash-Screen Android

+0

Sie bedeuten, wenn die Anwendung gestartet wird? –

+0

Der erste Bildschirm (Layout) der angezeigt wird –

Antwort

1

Sie werden nicht einen Handler benötigen, dies zu tun, gehen Sie folgendermaßen vor:

1- eine Aktivität für den Splash-Screen erstellen, die Ihre mainActivity startet, nachdem es fertig ist:

public class SplashActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = new Intent(this, MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
} 

2 - Der Begrüßungsbildschirm muss bereit sein, bevor der Brei sogar ein Layout aufblasen kann, also erstellen wir eine XML-Datei und definieren sie als Hintergrund des Fensters, hier ist eine XML-Datei mit einem grauen Hintergrund und einem Bild in der Mitte (namens background_splash.xml):

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:drawable="@color/gray"/> 

    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@mipmap/ic_launcher"/> 
    </item> 

</layer-list> 

3 - Nun gehen Sie in Ihr styles.xml und einen neuen Stil mit diesem Bild, das wir gerade erstellt haben, wie es Hintergrund ist:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 

    <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="android:windowBackground">@drawable/background_splash</item> 
    </style> 

</resources> 

4 - Schließlich Sie gehen in Ihre Manifest-Datei und definieren Ihre SplashActivity als Launcher-Aktivität, und legen Sie Ihren neuen Stil fest:

<activity 
    android:name=".SplashActivity" 
    android:theme="@style/SplashTheme"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
0

Wenn Sie einen Splash Screen als Fragment in Ihrem MainActivity

  1. hinzufügen FrameLayout zu Ihrem MainActivity, in der FrameLayout hinzufügen möchten, ein Layout für Ihre Ansichten machen, und ein Fragment einfügen, die Ihre Splashscreen-Anzeige hält (Make sicher, dass Ihr Fragment ist in der Unterseite des MainActivity, so dass sein über Ihr Layout angezeigt)

Beispiel

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     //Your UI goes here   

    </LinearLayout> 


    <Fragment 
     Your Fragment with Splash Screen Goes here 
    /> 
</FrameLayout> 



  1. In Seite Ihre FragmentActivity tun dies

    new Handler()..postDelayed(new Runnable() { 
        @Override 
        public void run() { 
    
         Intent intent = getActivity().getIntent(); 
         getActivity().finish(); 
         startActivity(intent); 
    
        } 
    },2000); 
    
+0

Ich fürchte, dass ich nicht verstehe, was Sie damit meinen: "Fragment, das Ihre SplashScreen-Anzeige enthält (Stellen Sie sicher, dass sich Ihr Fragment unten in der MainActivity befindet angezeigt über Ihrem Layout) " Könnten Sie es bitte im Detail beschreiben? –

+0

aktualisierte meine Antwort. Das sollte deine Zweifel lösen –

Verwandte Themen