Aswin Balaji

Aswin Balaji

186 Sadasivam Nagar,Madipakkam,Chennai, TN 600091
Aswin Balaji

Android Splash Screen

August 17, 2015, by Aswin Balaji, category ANDROID
In order to implement splash screen we are going to create a separate activity for splash and once it closes we launch our main activity.
So let’s get started by creating a new project

1. Android Splash Screen Using Timer

1. Create a new project in Eclipse by navigating to File ⇒ New Android ⇒ Application Project and fill required details. (I kept my main activity name as MainActivity.java)
2. For Splash Screen we are creating a separate activity. Create a new class in your package and name it as SplashScreen.java
3. Open your your AndroidManifest.xml file and make your splash screen activity as Launcher activity.
AndroidManifest.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android
    package=”info.androidhive.androidsplashscreentimer”
    android:versionCode=”1″
    android:versionName=”1.0″ >
    <uses-sdk
        android:minSdkVersion=”8″
        android:targetSdkVersion=”17″ />
    <application
        android:allowBackup=”true”
        android:icon=”@drawable/ic_launcher”
        android:label=”@string/app_name”
        android:theme=”@style/AppTheme” >
        <!– Splash screen –>
        <activity
            android:name=”info.androidhive.androidsplashscreentimer.SplashScreen”
            android:label=”@string/app_name”
            android:screenOrientation=”portrait”
            android:theme=”@android:style/Theme.Black.NoTitleBar” >
            <intent-filter>
                <action android:name=”android.intent.action.MAIN” />
                <category android:name=”android.intent.category.LAUNCHER” />
            </intent-filter>
        </activity>
        <!– Main activity –>
        <activity
            android:name=”info.androidhive.androidsplashscreentimer.MainActivity”
            android:label=”@string/app_name” >
        </activity>
    </application>
</manifest>
4. Create a layout file for splash screen under res ⇒ layout folder. I named the layout file asactivity_splash.xml. This layout normally contains your app logo or company logo.

activity_splash.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android
    android:layout_width=”match_parent”
    android:layout_height=”match_parent”
    android:background=”@drawable/gradient_background” >
    <ImageView
        android:id=”@+id/imgLogo”
        android:layout_width=”wrap_content”
        android:layout_height=”wrap_content”
        android:layout_centerInParent=”true”
        android:src=”@drawable/wwe_logo” />
    <TextView
        android:layout_width=”fill_parent”
        android:layout_height=”wrap_content”
        android:layout_marginBottom=”10dp”
        android:textSize=”12dp”
        android:textColor=”#454545″
        android:gravity=”center_horizontal”
        android:layout_alignParentBottom=”true”
        android:text=”www.androidhive.info” />
</RelativeLayout>

5. Add the following code in SplashScreen.java activity. In this following code a handler is used to wait for specific time and once the timer is out we launched main activity.

SplashScreen.java
package info.androidhive.androidsplashscreentimer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {
    // Splash screen timer
    private static int SPLASH_TIME_OUT = 3000;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        new Handler().postDelayed(new Runnable() {
            /*
             * Showing splash screen with a timer. This will be useful when you
             * want to show case your app logo / company
             */
            @Override
            public void run() {
                // This method will be executed once the timer is over
                // Start your app main activity
                Intent i = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(i);
                // close this activity
                finish();
            }
        }, SPLASH_TIME_OUT);
    }
}

Run the application, you will see the splash screen for 3 sec and then your main activity will be launched.