pantalla despues blanco blanca android splash-screen

android - despues - La pantalla en blanco aparece antes de salpicar



pantalla blanca despues de splash ionic (8)

El principal problema es que la pantalla de inicio aparece después de 2-3 segundos. Antes de la pantalla de inicio aparece un diseño en blanco que no quiero. De lo contrario, funciona bien. Solo desea eliminar el diseño en blanco que aparece antes de la página de inicio.

Actividad principal:

public class MainActivity extends Activity { private static String TAG = MainActivity.class.getName(); private static long SLEEP_TIME = 5; // Sleep for some time @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Removes notification bar setContentView(R.layout.activity_main); // Start timer and launch main activity IntentLauncher launcher = new IntentLauncher(); launcher.start(); } private class IntentLauncher extends Thread { @Override /** * Sleep for some time and than start new activity. */ public void run() { try { // Sleeping Thread.sleep(SLEEP_TIME*1000); } catch (Exception e) { Log.e(TAG, e.getMessage()); } // Start main activity Intent intent = new Intent(MainActivity.this, Login.class); MainActivity.this.startActivity(intent); MainActivity.this.finish(); } } }

diseño principal

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/splash" tools:context=".MainActivity" > </RelativeLayout>


¡De Verdad! el siguiente enlace funciona para mí !!!!

https://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/

escriba el estilo separado en style.xml para su pantalla de inicio para que pueda relacionar la pantalla.

Aquí el estilo:

<style name="AppTheme.Splash" parent="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowBackground">@drawable/splash_final</item> </style>


Arreglé la mía simplemente actualizando las herramientas de compilación en Android Studio.


Creo que esto es similar a algunas respuestas que se han publicado anteriormente. Todavía me gustaría recomendar la siguiente guía de Big Nerd Ranch sobre cómo crear una pantalla de inicio de la manera correcta porque está bien ilustrada y es fácil de seguir. Deberías ir allí y leerlo en lugar de continuar más abajo :). https://www.bignerdranch.com/blog/splash-screens-the-right-way/

Pero en resumen, lo que sugiere es que, al iniciar la aplicación, inicias una actividad inicial de inicio. Para esta actividad creas un dibujable XML ( @drawable/background_splash ).

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

Luego crea un tema para la actividad de bienvenida y establece el dibujo que creó anteriormente como fondo de la ventana.

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

Y luego, en el manifiesto, le dice a la actividad de inicio que use el tema anterior.

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

Finalmente, en su actividad de bienvenida, implemente el método onCreate como se muestra a continuación (es decir, todo el código que necesita en la actividad). Esto iniciará tu actividad principal y finalizará la actividad de inicio:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); }


El problema al que se enfrenta aquí se llama ''arranque en frío'' y es el tiempo que se dedica mayormente a su método Application.onCreate , que generalmente hace algunas inicializaciones y puede llevar más tiempo de lo que desea. Puede leer aquí la documentación oficial: https://developer.android.com/topic/performance/launch-time.html

Si este es el caso, configurar el tema como translúcido o desactivar la vista previa ya que otros sugirieron solo solucionará el problema aparentemente, porque en realidad tratará de iniciar la aplicación y no recibirá ningún comentario sobre el hecho de que haya tocado la aplicación. icono. Verá que su aplicación comienza con un retraso, que no es un UX deseado.

Pantalla en blanco, negra o blanca, realmente depende del atributo de android:windowBackground especificado en su tema de actividad principal. Lo mejor que puede hacer, además de mover algunas de las inicializaciones que probablemente esté haciendo en su Método Application.onCreate , es marcar su ventana de vista previa con un logotipo como se sugiere en esta publicación:

https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd

Puede ir más allá y mejorar la experiencia del usuario animando su imagen de logotipo en una pantalla de presentación, si es el caso, o diseñando la ventana de vista previa de manera que se pueda realizar una transición sin problemas al contenido de su actividad principal, como se describe aquí:

http://saulmm.github.io/avoding-android-cold-starts

La misma pregunta se responde correctamente aquí: https://.com/a/40482549/7094200 y se describe en esta publicación del blog: https://www.bignerdranch.com/blog/splash-screens-the-right-way/


En general, las pantallas de inicio no se recomiendan para una aplicación, pero si realmente debes hacerlo.

Android cargará un diseño en blanco antes de cargar un diseño de actividad basado en el tema que ha establecido para él. La solución es establecer el tema de la actividad de bienvenida en uno transparente.

Cree un tema transparente en res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Transparent" parent="android:Theme"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> </style> </resources>

Luego establece el tema en tu manifiesto

<activity android:name=".SplashActivity" android:theme="@style/Theme.Transparent"> ... </activity>


Es funciones de Android. Puede cambiar el color de fondo de su pantalla en blanco. Usar estilo:

<resources> <style name="Theme" parent="android:style/Theme" /> <style name="Theme.MainTheme" parent="Theme"> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowBackground">@drawable/background_drawable</item> </style> </resources>

entonces utilízalo en manifiesto

<application android:name="@string/app_name" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.MainTheme" >


Es mejor usar un fondo temático para su actividad de inicio, pero si no desea que aparezca la pantalla en blanco antes de iniciar la actividad principal, puede definir su actividad de la siguiente manera:

Agregue android:windowDisablePreview a su AppTheme en res / values ​​/ styles.xml:

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme"> <item name="android:windowDisablePreview">true</item> </style> </resources>

Luego establece el tema de tu actividad en tu manifiesto:

<activity android:name=".MainActivity" android:theme="@style/AppTheme"> ... </activity>

PD: configurar android:windowDisablePreview no tiene ningún efecto en el fondo de su actividad, por lo que no tiene que preocuparse.


Solo menciona el tema transparente a la actividad de inicio en el archivo AndroidManifest.xml.

<activity android:name="first Activity Name" android:theme="@android:style/Theme.Translucent.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>