You want to execute a delayed task that executes its logic only after a certain amount of time has passed.
The splash image can be dropped in the res/drawables folder:splash.png
The layout for a splash screen Activity:splash_screen.xml:
<?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitXY" android:src="@drawable/splash" /> </merge>We also need to define the new Activity in the manifest file. Because it’ll be the first Activity that’s launched, it’ll take the place of the MyMovies Activity.
......... <activity android:name=".SplashScreen" android:label="@string/title_myMovie" android:theme="@style/SplashScreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MyMovies" /> .........
<style name="SplashScreen" parent="@android:style/Theme.Black"> <item name="android:windowNoTitle">true</item> </style>
public class SplashScreen extends Activity { public static final int SPLASH_TIMEOUT = 2000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash_screen); new Timer().schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub proceed(); } }, SPLASH_TIMEOUT); } public boolean onTouchEvent(MotionEvent event){ if(event.getAction()==MotionEvent.ACTION_DOWN){ proceed(); } return super.onTouchEvent(event); } private void proceed() { if(this.isFinishing()){ return; } startActivity(new Intent(SplashScreen.this,MyMovies.class)); finish(); } }