Membuat Splash Screen Android Menggunakan Kotlin

thumbnail

Sekarang saya akan menjelaskan kepada anda mengenai pembuatan sebuah splash screen pada android menggunakan Kotlin. Splash Screen adalah sebuah aktifitas yang pertama kali dilakukan oleh aplikasi dimana pengguna menunggu beberapa detik dan selanjutnya akan masuk ke halaman yang ditentukan. Splash Screen merupakan tampilan yang banyak dibuat oleh aplikasi mobile sekarang. Sangat mudah untuk membuat Splash Screen menggunakan Handler Class.

Disini saya akan menjelaskan pembuatan Splash Screen menggunakan Android Studio 3.0 atau ke atas, anda juga harus sudah membuat sebuah project menggunakan Kotlin. Jika anda menggunakan Android Studio versi lama maka anda masih bisa membuatnya menggunakan Kotlin, yaitu dengan menambahkan plugin Kotlin dari JetBrains dan melakukan konfigurasinya dalam project anda.

Dalam pembuatan Splash Screen ini dibutuhkan beberapa langkah yang harus anda cermati. Dimulai dari:

1. Membuat sebuah file layout XML

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.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"

  tools:context="com.inpows.splashscreenkotlin.SplashActivity">

  <include

      android:id="@+id/container_splash"

      layout="@layout/content_splash"

  />

</android.support.constraint.ConstraintLayout>

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:app="http://schemas.android.com/apk/res-auto"

  android:layout_width="match_parent"

  android:layout_height="match_parent">

  <TextView

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Splash Screen"

      android:textColor="@android:color/black"

      android:textStyle="bold"

      android:layout_gravity="center"

      app:layout_constraintBottom_toBottomOf="parent"

      app:layout_constraintLeft_toLeftOf="parent"

      app:layout_constraintRight_toRightOf="parent"

      app:layout_constraintTop_toTopOf="parent" />

</FrameLayout>

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout

  xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

  android:layout_height="match_parent">

  <include

      android:id="@+id/container_login"

      layout="@layout/content_login" />

</android.support.constraint.ConstraintLayout>

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:app="http://schemas.android.com/apk/res-auto"

  android:layout_width="match_parent" android:layout_height="match_parent">

  <TextView

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"

      android:text="Login Screen"

      android:textColor="@android:color/black"

      android:textStyle="bold"

      android:layout_gravity="center"

      app:layout_constraintBottom_toBottomOf="parent"

      app:layout_constraintLeft_toLeftOf="parent"

      app:layout_constraintRight_toRightOf="parent"

      app:layout_constraintTop_toTopOf="parent" />

</FrameLayout>

2. Membuat Class SplashActivity.kt

package com.inpows.splashscreenkotlin

import android.content.Intent

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

import android.os.Handler

class SplashActivity : AppCompatActivity() {

  private var mDelayHandler: Handler? = null

  private val SPLASH_DELAY: Long = 2000 //2 seconds

  internal val mRunnable: Runnable = Runnable {

      if (!isFinishing) {

          val intent = Intent(applicationContext, LoginActivity::class.java)

          startActivity(intent)

          finish()

      }

  }

  override fun onCreate(savedInstanceState: Bundle?) {

      super.onCreate(savedInstanceState)

      setContentView(R.layout.activity_splash)

      //Initialize the Handler

      mDelayHandler = Handler()

      //Navigate with delay

      mDelayHandler!!.postDelayed(mRunnable, SPLASH_DELAY)

  }

  public override fun onDestroy() {

      if (mDelayHandler != null) {

          mDelayHandler!!.removeCallbacks(mRunnable)

      }

      super.onDestroy()

  }

}

3. Menambahkan SplashActivity pada Manifest

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

  package="com.inpows.splashscreenkotlin">

  <application

      android:allowBackup="true"

      android:icon="@mipmap/ic_launcher"

      android:label="@string/app_name"

      android:roundIcon="@mipmap/ic_launcher_round"

      android:supportsRtl="true"

      android:theme="@style/AppTheme">

      <activity android:name=".SplashActivity">

          <intent-filter>

              <action android:name="android.intent.action.MAIN" />

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

          </intent-filter>

      </activity>

      <activity android:name=".LoginActivity"

          android:screenOrientation="portrait"/>

  </application>

</manifest>

4. Hasil

Back To Top