2011-08-02 17 views
14

Chcę utworzyć ekran powitalny w mojej aplikacji, ponieważ muszę wiedzieć, jak wyświetlić obraz na pełnym ekranie. Czy mogę to zrobić za pomocą kodu XML lub Java? I jak? Teraz właśnie to:[Ekran powitalny] Jak wyświetlić obraz na pełnym ekranie?

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); 
    } 
    } 

Jak może być to splash_screen.xml? Dziękuję za pomoc.

Odpowiedz

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> 

iw kodzie dodać

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

przed setContentView (R.layout.splash_screen);

+0

Doskonałe pytanie, ale mam inny problem, kiedy naciśnij przycisk Wstecz i pokaż ekran powitalny innym razem, otworzę kolejny temat. Dzięki :). – androniennn

+3

musisz wywołać 'finish();' a działanie nie zostanie wyświetlone po naciśnięciu przycisku Wstecz. –

+0

również byłoby dobrze, gdyby można było uruchomić ekran powitalny na wątku. –

1

Jeśli R.layout.splash_screen zawiera obraz o wysokości i szerokości ustawiony na fill_parent lub match_parent (w zależności od wersji). Będzie wypełnić ekran

20

Najlepszym sposobem, aby pokazać pełną aktywność ekran powitalny jest oddanie tej linii w swoim manifeście pod tagiem działalności

android: theme = „@ android: styl/Theme.Light.NoTitleBar.Fullscreen”

można korzystać z innych tematów oraz

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> 

najnowsze Api lizak i powyżej

<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> 

Definiowanie tego tematu za aktywność powitalny i dostarczyć go w jawnym

Androidzie: motyw = "@ styl/Theme.AppCompat .Light.NoActionBar.FullScreen "

+0

To powoduje, że mój tytuł "Theme.Light.NoTitleBar.Fullscreen" Jak mogę to naprawić? –

+0

Pojawia się błąd: "Musisz użyć motywu Theme.AppCompat (lub potomka) z tym działaniem" – Reza

+0

Edytowano odpowiedź dla nowych wersji api – Ravi

Powiązane problemy