Как исправить белый экран при запуске приложения?
У меня есть приложение для android, которое отображает белый экран в течение 2 секунд при запуске. Мои другие приложения не делают этого, но этот делает. Я также реализовал splashscreen с надеждой, что это исправит это. Должен ли я увеличить время сна экрана-заставки?
Спасибо.
13 ответов:
просто упомяните прозрачную тему для стартовой деятельности в 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>и расширить этот экран с
Activityкласса вAppCompatActivity.как :
public class SplashScreenActivity extends Activity{ ----YOUR CODE GOES HERE---- }
поместите это в пользовательский стиль, и он решает все проблемы. Использование hacky полупрозрачного исправления сделает вашу панель задач и навигационную панель полупрозрачными и сделает splashscreen или главный экран похожими на спагетти.
<item name="android:windowDisablePreview">true</item>
сделать стиль в стиль.XML следующим образом :
<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsTranslucent">true</item> </style>и использовать его с вашей деятельностью в AndroidManifest как:
<activity android:name=".ActivitySplash" android:theme="@style/Theme.Transparent">
как ты пробки.. первоначально они показывают значок экрана вместо белого экрана. И через 2 секунды показывает домашний экран.
сначала создайте XML-чертеж в res / drawable.
<?xml version="1.0" encoding="utf-8"?> <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>Далее, вы установите это в качестве фона вашего всплеска активности в теме. Перейдите к вашим стилям.xml-файл и добавить новую тему для вашего всплеска активности
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/background_splash</item> </style> </resources>в новом SplashTheme установите фон окна атрибут для вашего XML drawable. Настройте это как тему вашего всплеска активности в вашем AndroidManifest.XML-код:
<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>эта ссылка дает то, что вы хотите. пошаговая процедура. https://www.bignerdranch.com/blog/splash-screens-the-right-way/
обновление:
The
layer-listможет быть еще проще, как это (который также принимает векторные чертежи для центрированного логотипа, в отличие от<bitmap>tag):<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Background color --> <item android:drawable="@color/gray"/> <!-- Logo at the center of the screen --> <item android:drawable="@mipmap/ic_launcher" android:gravity="center"/> </layer-list>
вы должны прочитать этот Великий пост Сирила Мотье:Android запуск приложения сделал великолепный
вам нужно настроить ваш
Themeв стиле.xml и избегайте настройки в вашемonCreateв верхней панели.setIcon / setTitle / etc.Смотрите также документацию по Полезные Советы от Google.
использовать
Trace ViewиHierarchy Viewerчтобы увидеть время для отображения ваших взглядов: Оптимизация Производительности Android / Настройка Производительности На Androidиспользовать
AsyncTaskдля отображения некоторых видов.
Это мой AppTheme на примере приложения:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>как вы можете видеть, у меня есть цвета по умолчанию, а затем я добавил
android:windowIsTranslucentи установить его вtrue.насколько я знаю, как разработчик Android, это единственное, что вам нужно установить, чтобы скрыть белый экран при запуске приложения.
свойства работает использовать любой из них.
<style name="AppBaseThemeDark" parent="@style/Theme.AppCompat"> <!--your other properties --> <!--<item name="android:windowDisablePreview">true</item>--> <item name="android:windowBackground">@null</item> <!--your other properties --> </style>
на user543 ответ идеально
<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>но:
ты пусковая активность должны extands активность, а не AppCompatActivity как это было по умолчанию!
белый фон исходит из Apptheme.Вы можете показать что-то полезное, как ваш логотип приложения вместо белого screen.it может быть сделано с помощью пользовательских theme.in ваша тема приложения просто добавить
android:windowBackground=""
Это можно исправить, установив тему в манифесте как
<activity android:name=".MySplashActivityName" 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>и после этого, если вы получаете
java.ленг.IllegalStateException: вам нужно использовать тему.AppCompat тема (или потомок) с этой деятельностью.
тогда вам может понадобиться расширить активность вместо AppCompatActivity в вашей MySplashActivity.надеюсь, что это помогает!
вы должны отключить мгновенный запуск настроек android studio.
настройки Файл>>Создать,выполнения, развертывания>мгновенный запуск отключить все опции указаны.
Примечание: белый экран проблема из-за Мгновенный Запуск только для отладочных сборок, эта проблема не будет отображаться в сборках выпуска.
Ниже приведена ссылка, которая предлагает, как создать заставку. Чтобы избежать белого / черного фона, нам нужно определить тему с фоном всплеска и установить эту тему для всплеска в файле манифеста.
https://android.jlelse.eu/right-way-to-create-splash-screen-on-android-e7f1709ba154
splash_background.xml внутри папки res / drawable
<?xml version=”1.0" encoding=”utf-8"?> <layer-list xmlns:android=”http://schemas.android.com/apk/res/android"> <item android:drawable=”@color/colorPrimary” /> <item> <bitmap android:gravity=”center” android:src=”@mipmap/ic_launcher” /> </item> </layer-list>добавить ниже стили
<!-- 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> <!-- Splash Screen theme. --> <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash_background</item> </style>в Манифесте установить тему, как показано ниже
<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>
У меня тоже была такая же проблема на одном из моих проектов. Я решил это, добавив некоторые следующие параметры в тему, предоставленную на экране заставки.
<item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsTranslucent">true</item>вы можете найти причину и разрешение этот блог написанное мной. Надеюсь, это поможет.

Comments