Android Splash Screen
Splash Screen Nedir?
Uygulama initialize olurken kullanıcıya “bak bu benim logom” diye gösterilen ekran. Genellikle ortada bir logo bulunan sade bir tasarım olur. Peki gerekli midir? Evet, her uygulamada bir Splash Screen olmalıdır.
Bence ama bu, bencesi 🙂
Bazı Splash Screen örnekleri



Nasıl Yapılır?
Yanlış Kullanım
Bir activity oluşturup, uygulamayı bu activity ile başlatıp, 1-2 saniye sonra ana activity’ye geçilir. Bu yanlıştır çünkü; uygulama initialize olurken yine boş bir ekran görüntülenecektir. Ayrıca bizim belirlediğimiz süre boyunca ekranda kalacaktır. Her cihazın performansı aynı olmadığı için bu istediğimiz bir şey değil.
Doğru Kullanım
Adım 1:
İlk olarak kütüphaneyi ekleyelim.
modül düzeyinde build.gradle dosyasında dependencies altına;
implementation 'androidx.core:core-splashscreen:1.0.0-beta02'
Adım 2:
themes.xml dosyasında bir style oluşturacağız.
İsmini “Theme.App.Starting”, parent’ı “Theme.SplashScreen” olarak ayarlıyorum. Theme.SplashScreen teması eklediğimiz kütüphane ile geliyor.
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/white</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_logo</item>
<item name="postSplashScreenTheme">@style/Theme.SplashScreenKullanimi</item>
</style>
“windowSplashScreenBackground” ile arkaplan rengini ayarlıyoruz.
“windowSplashScreenAnimatedIcon” ile koymak istediğimiz logoyu belirtiyoruz. Logo boyutu için 144p öneriliyor. Ayrıca vector olarak yani .xml formatında oluşturmalısınız.
Son olarak “postSplashScreenTheme” ile splash screen görüntülendikten sonra uygulanması için ana temayı belirtiyoruz.
Adım 3:
AndroidManifest.xml dosyasında oluşturduğumuz temayı ana tema olarak ayarlayalım.
android:theme="@style/Theme.App.Starting"
MainActivity.kt dosyasında onCreate fonksiyonu altında installSplashScreen() fonksiyonunu çağıralım.
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
Görüldüğü üzere super.onCreate()‘den önce çağırmak gerekiyor.
Uygulamayı çalıştırıp test edin.
Not: Android 12 cihazlarda Android Studio üzerinden çalıştırdığımız zaman logo görünmüyor. Uygulamayı tamamen kapatıp elle açınca sorunsuz çalışıyor. Bunun nedenini anlamadım. 🙂
Okuduğunuz için teşekkür ederim, iyi çalışmalar.