Activity ile Splash Screen

Şuan splash screen hazırlamanın iki yolu var. İlki SplashActivity oluşturup belli bir süre hoş geldiniz ekranını göstermek ve ardından MainActivity’e geçmek.

<activity
    android:name=".MapsActivity"
    android:windowSoftInputMode="stateAlwaysHidden"
    android:label="@string/title_activity_maps" />
<activity android:name=".SplashActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

Daha sonra aşağıdaki görüntüyü drawable’ımızın içine koyup  activity_splash.xml dosyamızı şu şekilde ayarlıyoruz.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SplashActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/image_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>
</android.support.constraint.ConstraintLayout>

Ardından SplashActivity.java dosyasının içinde görüntümüzü atayarak yeni bir thread oluşturuyor ve 3 saniye delay’den sonra MainActivity’e geçişi yapıyoruz.

package com.example.sample;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        ImageView imageView =  findViewById(R.id.image_view);
       Glide.with(this).load(R.drawable.welcome).centerCrop().into(imageView);
        Thread thread= new Thread() {
            public void run() {
                try {
                    // 3 saniye uyut
                    sleep(1*1000);
                    // yönlendir
                    Intent intent = new Intent(SplashActivity.this, MapsActivity.class);
                    startActivity(intent);

                    // Activity'i öldür
                    finish();
                } catch (Exception e) {
                }
            }
        };
        thread.start();
    }
}
Splash activity

İkinci yol ise benim anlattığım ilk yolun hatalı olduğunu ve nasıl olması gerektiğinden bahsediyor. Burdaki ilgili yazıyı okuyabilirsiniz.