Bu yazımda Android uygulaması için otomatik geçiş yapan açılış ekranı yapımını yani splash screen yapımını anlatacağım.

Android Studio’da sol kısımda bulunan dosya gezgininden önce java klasörünün altındaki uygulama adınızın yazdığı son klasöre sağ tık yaparak yeni bir java sınıfı oluşturalım. Ben adını SplashActivity olarak yazdım.

Sonra res içindeki layout klasörüne sağ tık yaparak yeni bir xml layot dosyası oluşturalım. Ben adını activity_splash olarak yazdım.

Daha sonra oluşturduğumuz activity_splash.xml dosyasını açıp içindeki tüm kodu silelim ve aşağıdaki kodu ekleyelim.

activity_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/splash_image"
 //arkaplan resmi istiyorsanız bu kod satırını yazın ve res klasörü içine yüklediğiniz arkaplan adını splash_image ile değiştirin.
    
</androidx.constraintlayout.widget.ConstraintLayout>

Ben yukarıdaki kodun içinde belirttiğim gibi bir arkaplan resmi kullanmayacağım. Düz tek renk kullanacağım. Bunun için aşağıdaki kod gibi o satırı sildim ve yerine arkaplanı düz renk yapan satırı ekledim. Satırda bulunan HEX renk kodunu değiştirerek sizde istediğiniz rengi ayarlayabilirsiniz.

activity_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000" >

</androidx.constraintlayout.widget.ConstraintLayout>

Tasarım kısmını şimdilik burada bırakarak kod kısmına geçelim. Bu kodu yazmamızın sebebi Splash tasarımımızı 3 saniye gösterip bizi ana uygulamamıza göndermek olacaktır.

Diğer oluşturduğumuz SplashActivity dosyasını açalım ve en üstteki package satırı haricinde içindeki kodları silip aşağıdaki kodu koyalım.

SplashActivity

public class SplashActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        Thread timerThread = new Thread(){
            public void run(){
                try{
                    sleep(3000);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }finally{
                    Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                    startActivity(intent);
                }
            }
        };
        timerThread.start();
    }

    @Override
    protected void onPause() {
        super.onPause();
        finish();
    }
}

Kodu ekledikten sonra kırmızı renginde olan yazılara sırasıyla tıklayıp alt + enter yaparak eklediğimiz kodların çalışması için gerekli kütüphaneleri import edelim.

Yukarıdaki kodda Thread metodunu kullanarak layotumuzun kaç saniye gözükeceğini belirledik.

Kod içerisinde bulunan sleep(3000); satırı ile milisaniye olarak ne kadar gözükeceğini belirtir. 3000 3 saniyeye eşittir. Süreyi buradan milisaniye olarak istediğiniz gibi değiştirebilirsiniz.

timerThread.start(); ise Thread metodunu başlatıyor.

Şimdi başta oluşturduğumuz sınıfı manifests > AndroidManifest.xml dosyasının içinde tanıtalım.

Bunun için AndroidManifest.xml dosyasını açıp MainActivitiy kod bloğununun altında olan <intent-filter> kod bloğunu siliyoruz.

Sonrada application kod bloğunun içerisine aşağıdaki kodu ekleyelim.

<activity android:name=".SplashActivity" android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

android:theme=”@style/Theme.AppCompat.NoActionBar” ile Splash ekranında üst kısımda bulunan ActionBar‘ı da gizlemiş olduk. Ama aynı zamanda layot‘umuzu koyu tasarıma geçirdik. Hem ActionBar‘ı gizlemek hem de eskisi gibi aydınlık tasarıma geçmek istiyorsanız android:theme=”@style/Theme.AppCompat.Light.NoActionBar” kodunu kullanın.

Yani AndroidManifest.xml dosyamızın içi böyle olacaktır:

Her şey tamam. Geriye bir tek splash ekranımızın tasarımını ayarlamak kaldı.

Bunun için activity_splash.xml dosyamıza dönelim ve sağ üstten Desing seçeneğini seçelim.

Ben tasarım olarak siyah arkaplanın üzerine ortalanmış şekilde uygulamanın simgesini altına da uygulamanın adını yazacağım. Simgeyi ve adı elle doğrudan yazmayın çünkü simgeyi yada adı değiştirirseniz bu tasarımı açıp buradan da değiştirmeniz gerekecektir.

Bu yüzden uygulamanın simgesi yada adı değiştirildiğinde otomatik olarak bu tasarımımızda da değişmesi için bu 2 veriyide uygulamamızın içerisinden çekeceğiz.

Desing ekranının sol taraftaki Palette bölümünden ImageView ve TextView ögelerini tutup ekranımıza sürükleyelim.

ImageView ögesini sürükledikten sonra gelen pencereden avatar resmini seçip ilerleyelim.

Benim arkaplanım ve eklediğim yazı siyah. Bu yüzden yazımın rengini android:textColor=”#FFFFFF” ile beyaz yaptım.

Tasarıma eklediğimiz bu iki ögeden önce resmi seçip üst, sağ ve sol taraflarında bulunan yuvarlakları seçerek sırasıyla üst, sağ ve sola kadar sürükleyelim. Altındaki yuvarlağı da altında bulunan yazının üst tarafındaki yuvarlağa kadar sürükleyelim. Aynı işlemi yazının alt, sağ ve sol kısmı kenarlara çekerek tamamlayalım. Böylelikle ögeleri düzgün şekilde oturtturduk.

Son olarak resim ile yazının arasındaki boşluğu kısaltalım. Bunun için tasarımdan TextView ögemizi seçip sağ tarafta bulunan Constraint Widget bölümünün altında bulunun kare kutunun üstünde ki + simgesine basalım.

Tasarımda tamam. Şimdi eklediğimiz resmi uygulamanın ikonu ve eklediğimiz yazıyı da uygulamanın adı olacak şekilde projemizden çekelim.

İlk önce uygulama simgesini çekelim. Eklediğimiz resimi seçip sağ kısımda bulunan srcCompat satırındaki bölümü silip yerine @mipmap/ic_launcher yazalım. Bu işlemde eklediğimiz resim ögesine res > mipmap > ic_launcher klasörü içinde bulunan ve uygulamanın simgesi olan ic_launcher simgesini çek dedik.

Şimdi uygulama adını çekelim. Eklediğimiz TextViev‘i seçip sağ kısımda bulunan text satırındaki bölümü silip yerine @string/app_name yazalım. Bu işlemde eklediğimiz TextViev yazı ögesine res > values klasörü içinde bulunan ve uygulamanın adını app_name id‘si ile içinde tutan strings.xml dosyasının içinden çektik.

İşlem bu kadar.

İsterseniz tasarımda yazı büyüklüğü, rengi değiştirme, başka öge ekleme gibi değişiklikler yapabilirsiniz.

Eğer uygulama simgesini böyle çekmezse uygulama simgesi yükledikten sonra uygulamanın proje dizinini açın app\src\main\res içerisinde mipmap klasörlerinin altında çeşitli çözünürlükte .png formatında oluşturulan simgeyi kopyalayın ve manuel olarak ekleyin. Bunun için önce mipmap klasörleri içerisinde en yüksek çözünürlüklü png’yi alıp masaüstüne kopyalayın. Ardından Desing ekranından simgeyi seçin ve sağ kısımdan başında ayar simgesi bulunan srcCompat satırındaki yazıyı silin sonrada başında ayar simgesi bulunmayan srcCompat satırındaki resim kutusuna tıklayın. Açılan pencerede sol üstteki + simgesine tıklayın ve Import Drawables seçeneğini seçin ardından local seçeneğini seçin ve masaüstüne koyduğunuz .png dosyasını seçin. Resim artık proje klasörünüzün içine yükledi. Şimdi de karışınıza gelen ekrandan resminizi seçin ve OK butonuna basın.

Uygulama simgesini internetten bulduğum ve renklerini değiştirdiğim telifsiz, değiştirlebilir ve atıf gerektirmeyen bir svg ile değiştirip uygulama adını da biraz büyüttükten sonra projeyi sanal cihazda çalıştırarak test ettim:

Android uygulamanızın daha profesyonel gözükmesi için mutlaka splash screen yapmanızı tavsiye ediyorum.

Merak ettiğiniz bir konu varsa yorum kısmından bana sorabilirsiniz.

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *