Merhaba arkadaşlar,
Bunu yapmanın birkaç yolu var, ben en çok kullanılan yöntemi tercih edeceğim. Mantığımız şu şekilde; Uygulama açıldığında MainActivity class’ından değil de bizim istediğimiz ve splash screen’imizin olduğu class’tan uygulamayı başlatacağız, belli bir süre(splash screen’in görünmesini istediğimiz süre) o ekranda kalacağız daha sonra MainActivity’ye yönlendireceğiz.
Uygulamaya geçelim. Yeni bir proje dosyası açıyoruz, Nuget’lardan Xamarin.Forms’u güncel değilse güncelliyoruz. Burada dikkat etmemiz gereken bir diğer unsur da “Xamarin.Android.Support.v7.AppCompat” ve “Xamarin.Android.Support.v4” pluginlerinin yüklü olmasıdır, değilse onları da yüklüyoruz.
Daha sonra, yeni ekleyeceğimiz SplashScreen class’ı için style tanımlamamız gerekiyor, bunun için Android projesi altındaki values klasörünün içinden style.xml dosyasını açıyoruz ve aşağıdaki kodları ekliyoruz.
<style name="Theme.Splash" parent="android:Theme">
<item name="android:windowBackground">@drawable/Splash</item>
<item name="android:windowNoTitle">true</item>
</style>
Şimdi sıra geldi SplashScreen class’ımızı oluşturmaya, projeye sağ tıklayıp SplashActivity adında yeni bir class oluşturuyoruz.
Class’ımızı tıpkı MainActivity class’ına benzetiyoruz aşağıdaki kodları ekliyoruz. Buradaki can alıcı noktaların altını çizdim. Az önce style.xml dosyasına eklediğimiz Splash temasını buradan çağırıyoruz ve MainLauncher=true
özelliğini ekliyoruz. (MainLauncher propoerty’si uygulamanın başlangıç dosyasını seçmemizi sağlıyor, boolean değer alıyor, true dediğimiz dosyadan, yani “SplashActivity” dosyasından uygulamayı başlatmak için bu özelliği kullanıyoruz.). Ve tabii, başlangıç class’ımız MainActivity olmadığı için artık Label ve Icon özelliklerini de burada tanımlamamız gerekiyor. OnCreate metodunun içinde gördüğünüz yorum satırı uygulamayı istediğimiz süre bekletmemizi sağlıyor, biz de bu sürede splashscreen’imizi görüyoruz. Default olarak 3 saniye gibi bi süre bekliyor, Buaraya yazacağımız milisaniye cinsinden değer ise 3 saniyenin arkasına ekleniyor, örneğin bu yorum satırı çalışıyor olsaydı splash screen’imiz ekranda 4.5 saniye kalacaktı. Daha sonra ise StartActivity ile uygulamayı “MainActivity” dosyasına yönlendiriyoruz ve uygulamamız normal bir şekilde başlamış oluyor.
SplashActivity class’ında işimiz bitti. Sıra geldi MainActivity dosyasına, burda ise SplashActivity dosyasında kullandığımız özellikleri (MainLauncher,Label,Icon) siliyoruz.
Şimdi sıra geldi görsellerimizi hazırlamaya, farklı ekran boyutları için görselimizi 3 adet (XXLarge,XLarge,Heigh çözünürlüklerde kaydediyoruz. Ben XX için 1080×1920, X için 1280×768 ve H için 800×480 boyutlarını kullandım.
Ve artık tüm işlemlerimiz tamamlandı. Artık uygulamamızı çalıştırıp nasıl göründüğüne bakabiliriz.
Kaynak kodlara buradan ulaşabilirsiniz.
6 Yorum
You can post comments in this post.
Tam aradığım yazı. Elinize sağlık.
Ömer Sezer 6 sene ago
Default olarak 3 saniye beklemesini değiştirebilir miyiz ?
Ömer Sezer 6 sene ago
Uygulamanın açılma süresi belki 1sn belki daha fazla olabilir. Zaten splashscreen bu beklemeler için var. Bu tamamen senin uygulamanın açılışta neler yaptığıyla alakalı.
Yiğit ÖZAKSÜT 6 sene ago
Elinize sağlık hocam👍👍
Abdurhman sefer 4 sene ago
Splash screen’den sonra sayfa açıldığında, android’in geri tuşuna bastığımda uygulamanın alta inmesi gerekirken, splash activity ekrana geliyor.
Burak 4 sene ago
Tamamdır cevabı buldum 🙂 MainLauncher yazdığımız kısma NoHistory = true eklersek, geri geldiğimizde activity açılmıyor.
Burak 4 sene ago
Yorum Gönder