2011-08-02 32 views
14

Quiero hacer una pantalla de bienvenida en mi aplicación, para eso necesito saber cómo mostrar una imagen en pantalla completa. Esto podría hacerme por código XML o Java? ¿Y cómo? Por ahora acabo de hacer esto:[Pantalla de bienvenida] ¿Cómo mostrar una imagen en pantalla completa?

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

Cómo puede ser esto splash_screen.xml? Gracias por su ayuda.

Respuesta

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> 

y en el código de añadir

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

antes setContentView (R.layout.splash_screen);

+0

Excelente pregunta, pero tengo otro problema, cuando presiono el botón Atrás i hacer que aparezca la pantalla de bienvenida en otro momento, abriré otro tema. Gracias :). – androniennn

+3

debe llamar a 'finish();' y la actividad no se mostrará cuando presione el botón Atrás. –

+0

también sería bueno si pudieras hacer que esta pantalla de presentación se ejecutara en un hilo. –

1

Si R.layout.splash_screen incluye una imagen con alto y ancho establecido en fill_parent o match_parent (según la versión). Se llenará la pantalla

20

La mejor manera de mostrar una actividad de bienvenida pantalla completa es al poner esta línea en su manifiesta bajo la etiqueta de actividad

android: theme = "@ android: estilo/Theme.Light.NoTitleBar.Fullscreen"

puede utilizar otros temas, así

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> 

para las últimas Lollipop Api y por encima de

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

Definir este tema para la actividad de bienvenida y le proporcionará en el manifiesto

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

+0

Esto hace que mi título sea "Theme.Light.NoTitleBar.Fullscreen" ¿Cómo puedo solucionar esto? –

+0

Aparece un error: "Necesita utilizar un tema Theme.AppCompat (o descendiente) con esta actividad" – Reza

+0

Editado la respuesta para nuevas versiones de API – Ravi

Cuestiones relacionadas