J'essaie suggestion # 2 de cette question: Android display Splash-Screen while loadingécran Android Splash écran pendant le chargement, mais obtenir un écran noir à la place
est d'utiliser un thème avec un drawable de fond puis chargement MainActivity de Splash.java qui utilise ledit thème pour afficher une image pendant que MainActivity traite et charge.
Je reçois un écran noir pendant plusieurs secondes puis l'écran principal apparaît au premier chargement.
Ai-je raté quelque chose? Ou est-ce que cela fonctionne correctement? Si cela fonctionne correctement, comment puis-je obtenir une image à afficher à la place de l'écran noir si possible?
@ étirables/background_splash
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Fill the background with a solid color -->
<item
android:drawable="@color/colorPrimary"/>
<item>
<!-- Place your bitmap in the center -->
<bitmap
android:gravity="center"
android:src="@mipmap/ic_launcher"/>
</item>
</layer-list>
@styles
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<!-- Splash Screen theme -->
<style name="SplashTheme">
<item name="android:background">@drawable/background_splash</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.epicdecals.openslider">
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/open_slider_icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Splash"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>
</application>
</manifest>
Splash.java
public class Splash extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}
}
Où est votre xml pour écran de démarrage. – Champandorid
http://stackoverflow.com/a/15832037/6478047 voir ceci pour la référence – Redman
vous utilisez 'Splash extends Activity', vous devez utiliser cette' Splash extends AppCompatActivity'. – Ironman