How do I add a splash screen that will be displayed ONLY when the user starts the app for the first time after installing. Something like a how-to-use guide.
First you need to define the splash screen in your layout.xml file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView id="@+id/splashscreen" android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/splash"
android:layout_gravity="center"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, splash"/>
</LinearLayout>
And your activity that see if it's the first time run:
public class FirstTimeRun extends Activity {
public static String prefName = "Random";
SharedPreferences prefs;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
if (prefs.getString("FirstTime", true) == true){
Intent i = new Intent(FirstTimeRun.this, Splash.class);
startActivity(i);
}else{
//start another Activity
}
}
Splash class:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class Splash extends Activity {
private final int SPLASH_DISPLAY_LENGTH = 1000;
public static String prefName = "Random";
SharedPreferences prefs;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splashscreen);
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
Editor edito = prefs.edit();
edito.putString("FirstTime", false);
edito.commit();
/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
Intent mainIntent = new Intent(Splash.this,Menu.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
Thats all ;)