2011-08-02 3 views
14

Je veux faire un écran de démarrage dans mon application, pour cela j'ai besoin de savoir comment afficher une image en plein écran. Cela m'a pu faire par code XML ou Java? Et comment? Pour l'instant je viens de faire ceci:[Écran de démarrage] Comment afficher une image en plein écran?

public class SplashScreen extends Activity { 

    private static final int STOPSPLASH = 0; 

    private static final long SPLASHTIME = 5000; 



    private Handler splashHandler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
    switch (msg.what) { 
    case STOPSPLASH: 
    //remove SplashScreen from view 
    Intent intent = new Intent(SplashScreen.this, jetpack.class); 
    startActivity(intent); 
    break; 
    } 
    super.handleMessage(msg); 
    } 
    }; 



    @Override 

    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_screen); 
    Message msg = new Message(); 
    msg.what = STOPSPLASH; 
    splashHandler.sendMessageDelayed(msg, SPLASHTIME); 
    } 
    } 

Comment peut-être ce splash_screen.xml? Nous vous remercions de votre aide.

Répondre

26
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<ImageView android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/image" /> 
</LinearLayout> 

et dans le code ajouter

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

avant setContentView (R.layout.splash_screen);

+0

Excellente question, mais j'ai un autre problème, quand j'appuie sur le bouton de retour i avoir l'écran de démarrage showen une autre fois, je vais ouvrir un autre sujet. Merci :). – androniennn

+3

vous devez appeler 'finish();' et l'activité ne sera pas affichée lorsque vous appuyez sur le bouton de retour. –

+0

aussi ce serait bien si vous pouviez faire fonctionner cet écran de démarrage sur un fil. –

1

Si R.layout.splash_screen inclut une image dont la hauteur et la largeur sont définies sur fill_parent ou match_parent (selon la version). Il remplira l'écran

20

La meilleure façon de montrer une activité de démarrage plein écran est en mettant cette ligne dans votre manifeste sous étiquette d'activité

android: theme = « @ android: le style/Theme.Light.NoTitleBar.Fullscreen »

Vous pouvez utiliser d'autres thèmes et

Theme.Black.NoTitleBar.Fullscreen
Theme.NoTitleBar.Fullscreen

<activity 
     android:name="com.example.SplashActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

Pour les dernières Lollipop Api et au-dessus

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> 
<item name="windowNoTitle">true</item> 
<item name="windowActionBar">false</item> 
<item name="android:windowFullscreen">true</item> 
<item name="android:windowContentOverlay">@null</item> 
</style> 

Définir ce thème pour l'activité d'accueil et de lui fournir dans le manifeste

android: theme = "style @/Theme.AppCompat .Light.NoActionBar.FullScreen "

+0

Cela rend juste mon titre "Theme.Light.NoTitleBar.Fullscreen" Comment puis-je résoudre ce problème? –

+0

Je reçois une erreur: "Vous devez utiliser un thème Theme.AppCompat (ou un descendant) avec cette activité" – Reza

+0

Modifié la réponse pour les nouvelles versions d'api – Ravi