Mam aplikację na Androida, która wyświetla biały ekran przez 2 sekundy po uruchomieniu. Moje inne aplikacje tego nie robią, ale ta robi. Zaimplementowałem również ekran powitalny z nadzieją, że to naprawi. Czy powinienem wydłużyć czas uśpienia ekranu powitalnego? Dzięki.
android
splash-screen
app-startup
Anonimowy
źródło
źródło
onCreate
część zbyt długo . Spróbuj po prostu „setContentView” w tym działaniu i sprawdź, czy to opóźnienie minęło.Odpowiedzi:
Wystarczy wspomnieć o przezroczystym motywie działania początkowego w pliku AndroidManifest.xml.
Lubić:
i rozszerz ten ekran o
Activity
klasę zamiastAppCompatActivity
.lubić :
źródło
final ActionBar actionBar = getActionBar();
zwróci wartość null, gdy motyw jest półprzezroczystyUmieść to w niestandardowym stylu i rozwiązuje wszystkie problemy. Użycie hacky, półprzezroczystej poprawki sprawi, że pasek zadań i pasek nawigacji staną się półprzezroczyste, a ekran powitalny lub ekran główny będzie wyglądał jak spaghetti.
<item name="android:windowDisablePreview">true</item>
źródło
Tak jak ty tube ... początkowo pokazują ekran ikon zamiast białego ekranu. A po 2 sekundach pokazuje ekran główny.
Najpierw utwórz XML do rysowania w res / drawable.
Następnie ustawisz to jako tło swojej aktywności powitalnej w motywie. Przejdź do pliku styles.xml i dodaj nowy motyw dla swojej aktywności powitania
W nowym SplashTheme ustaw atrybut tła okna na swój XML do rysowania. Skonfiguruj to jako motyw aktywności powitalnej w pliku AndroidManifest.xml:
Ten link daje to, czego chcesz. procedura krok po kroku. https://www.bignerdranch.com/blog/splash-screens-the-right-way/
AKTUALIZACJA:
layer-list
Może być jeszcze prostsze tak (który przyjmuje również kanału alfa wektorowa dla środku logo, w przeciwieństwie do<bitmap>
znacznika):źródło
mipmap/ic_launcher
layer-list
może wyglądać następująco:<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Background color --> <item android:drawable="@color/white"/> <!-- Logo at the center of the screen --> <item android:drawable="@mipmap/ic_launcher" android:gravity="center"/> </layer-list>
Utwórz styl w you style.xml w następujący sposób:
i używaj go do swojej aktywności w AndroidManifest jako:
źródło
Powinieneś przeczytać ten wspaniały post autorstwa Cyrila Mottiera: Wspaniałe uruchomienie aplikacji na Androida
Musisz dostosować swój
Theme
w style.xml i unikać dostosowywania w swoimonCreate
jako ActionBar.setIcon / setTitle / etc.Zobacz także dokumentację dotyczącą wskazówek dotyczących wydajności opracowaną przez Google.
Użyj
Trace View
i,Hierarchy Viewer
aby zobaczyć czas wyświetlania widoków: Optymalizacja wydajności Androida / dostrajanie wydajności w systemie AndroidSłuży
AsyncTask
do wyświetlania niektórych widoków.źródło
To jest mój AppTheme w przykładowej aplikacji:
Jak widać, mam domyślne kolory a potem dodałem
android:windowIsTranslucent
i ustawiłem natrue
.O ile wiem jako programista Androida, jest to jedyna rzecz, którą musisz ustawić, aby ukryć biały ekran na starcie aplikacji.
źródło
Obie właściwości wykorzystują jeden z nich.
źródło
User543 odpowiedź jest idealny
Ale:
Aktywność You'r LAUNCHER musi rozszerzać Activity , a nie AppCompatActivity, ponieważ jest domyślnie!
źródło
Białe tło pochodzi z Apptheme. Zamiast białego ekranu możesz wyświetlić coś pożytecznego, na przykład logo aplikacji. Można to zrobić za pomocą niestandardowego motywu. W aplikacji Motyw wystarczy dodać
atrybut. Wartością atrybutu może być obraz, lista warstw lub dowolny kolor.
źródło
<item name="android:windowBackground">@android:color/transparent</item>
Poniżej znajduje się link sugerujący, jak zaprojektować ekran powitalny. Aby uniknąć białego / czarnego tła, musimy zdefiniować motyw z tłem powitalnym i ustawić ten motyw jako powitalny w pliku manifestu.
https://android.jlelse.eu/right-way-to-create-splash-screen-on-android-e7f1709ba154
splash_background.xml w folderze res / drawable
Dodaj poniższe style
W motywie zestawu Manifest, jak pokazano poniżej
źródło
miałem również ten sam problem w jednym z moich projektów. Rozwiązałem to, dodając kilka następujących parametrów w motywie dostarczonym do ekranu powitalnego.
Możesz znaleźć przyczynę i rozwiązanie w tym wpisie na blogu napisanym przeze mnie. Mam nadzieję, że to pomoże.
źródło
Można to naprawić, ustawiając motyw w swoim manifeście jako
a następnie, jeśli otrzymujesz
java.lang.IllegalStateException: Musisz użyć motywu Theme.AppCompat (lub elementu podrzędnego) z tym działaniem.
wtedy może być konieczne rozszerzenie Activity zamiast AppCompatActivity w MySplashActivity.
Mam nadzieję, że to pomoże!
źródło
Białe tło jest spowodowane tym, że system Android uruchamia się, gdy aplikacja ładuje się w pamięci, i można tego uniknąć, dodając po prostu tę 2 linie kodu pod SplashTheme.
źródło
należy wyłączyć ustawienia Instant Run Android Studio.
Plik> Ustawienia> Kompilacja, Wykonanie, Wdrożenie> Natychmiastowe uruchamianie odznacz wszystkie wyświetlone tam opcje.
Uwaga: Problem z białym ekranem spowodowany natychmiastowym uruchomieniem dotyczy tylko kompilacji debugowania, ten problem nie będzie się pojawiał w kompilacjach wydań.
źródło
Wypróbuj następujący kod:
Ten kod działa dla mnie i będzie działać na wszystkich urządzeniach z Androidem.
źródło
Jego rozwiązanie jest bardzo proste!
Istnieją trzy podstawowe przyczyny tego problemu
Rozwiązania:
Rozwiązanie 1:
Rozwiązanie 2:
Rozwiązanie 3:
Udostępnij, aby ulepszyć.
źródło
To rozwiązało problem:
Edytuj swój plik styles.xml:
Wklej poniższy kod:
I nie zapomnij wprowadzić zmian w pliku AndroidManifest.xml . ( nazwa motywu )
Uważaj na kolejność deklaracji działań w tym pliku.
źródło
źródło