Androidアプリのスプラッシュ画面の実装
Androidアプリを起動した際に表示されるスプラッシュ画面、
よく制作会社名やアプリタイトルなどが表示されるアレです。
凝った演出方法は色々あるのですが、中でも一番シンプルで簡単な方法。
用意するものは、最初に表示するスプラッシュ画像1枚と、各Activityです。
xmlはスプラッシュ用に1つ、遷移後表示されるページに1つ用意します。
1.splash.xmlの作成
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="centerInside" android:src="@drawable/title"/> </LinearLayout>
スプラッシュに使用する画像は、android:src="@drawable/title"とあるように、
drawableディレクトリにtitle.pngで保存しています。
2.SplashActivity.javaの作成
public class SplashActivity extends Activity { private Handler handler = new Handler(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.splash); //スプラッシュ画像を2000ミリ秒表示する。 handler.postDelayed(new splashHandler(), 2000); } class splashHandler implements Runnable{ public void run(){ //インテントを生成し、遷移先のアクティビティクラスを指定する。 Intent intent = new Intent(getApplication(),MainActivity.class); //次のアクティビティの起動 startActivity(intent); //スプラッシュの終了。 SplashActivity.this.finish(); } } }
横へスライドするdefaultの遷移方法で次画面であるMainActivityが表示されます。
コレ以外にもフェードなどを使った凝った画面遷移も可能です。
3.AndroidManifest.xmlに追記
<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SplashActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="MainActivity"></activity> </application>
インテント処理を行う際、忘れがちなのがAndroidManifest.xmlへの追記。
(私だけですかね!?)
これだけでAndroidアプリ起動時に、スプラッシュを流すことが出来ます。