Android Tutorial - Add Splash Screen
Android splash screen are normally used to show user some kind of progress before the app loads completely. Some people uses splash screen just to show case their app / company logo for a couple of second. Unfortunately in android we don’t have any inbuilt mechanism to show splash screen compared to iOS. In this tutorial we are going to learn how to implement splash screen in your android application.
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 as
activity_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.fikri-yogi.blogspot.com" /> </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.