Cómo hacer una pantalla de bienvenida (pantalla visible cuando se inicia la aplicación)?

Tengo una aplicación simple, se inicia, carga xml feed de la red, puede navegar por una lista de noticias y luego leer los detalles de una noticia elegida. Lo que me gustaría hacer es tener una pantalla de bienvenida, lo que significa tan pronto como haga clic en la aplicación, debe mostrar una imagen (nombre de la aplicación en mi caso) y luego mostrar la lista de noticias sólo después de haber cargado.

He leído acerca de problemas similares (creo), y por lo general la gente dice usar FrameLayout, pero no puedo realmente solucionarlo. No estoy seguro de si esto se puede hacer en la primera actividad que se inicia, tal vez debería sólo mostrar esta imagen de bienvenida en una actividad y sólo entonces llamar a la actividad que muestra mi lista de noticias?

Sé que en el iPhone se puede establecer la pantalla de bienvenida en la configuración de la aplicación mientras se desarrolla, sería bueno tener esta funcionalidad en el manifiesto de la aplicación android …

Android sugiere que aproveche el uso de una pantalla de bienvenida al realizar cálculos largos al iniciar. Aquí hay un extracto del sitio web de desarrolladores de Android: Diseño para la capacidad de respuesta:

"Si su aplicación tiene una fase de instalación inicial que requiere mucho tiempo, considere la posibilidad de mostrar una pantalla de bienvenida o renderizar la vista principal lo más rápido posible y rellenar la información de forma asíncrona En cualquier caso, debe indicar de alguna manera que se está progresando, Usuario percibe que la aplicación está congelada. " – Sitio para desarrolladores de Android

Puede crear una actividad que muestre un diálogo de progreso mientras utiliza AsyncTask para descargar el feed xml de la red, analizarlo, almacenarlo en un db (si es necesario) y luego iniciar la actividad que muestra los feeds de noticias. Cierre la actividad splash llamando a finish ()

He aquí un código esqueleto:

public class SplashScreen extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); // set the content view for your splash screen you defined in an xml file setContentView(R.layout.splashscreen); // perform other stuff you need to do // execute your xml news feed loader new AsyncLoadXMLFeed().execute(); } private class AsyncLoadXMLFeed extends AsyncTask<Void, Void, Void>{ @Override protected void onPreExecute(){ // show your progress dialog } @Override protected Void doInBackground(Void... voids){ // load your xml feed asynchronously } @Override protected void onPostExecute(Void params){ // dismiss your dialog // launch your News activity Intent intent = new Intent(SplashScreen.this, News.class); startActivity(intent); // close this activity finish(); } } } 

¡Espero que ayude!

Sé que esto es viejo, pero para aquellos de ustedes que todavía se enfrentan a este problema, puede utilizar esta biblioteca simple de Android-splash para mostrar su pantalla de bienvenida.

 SplashBuilder .with(this, savedInstanceState) .show(); 

Puede establecer SplashTask que se ejecutará mientras se muestra la pantalla de bienvenida.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.