2011年8月15日月曜日

Android の定石 #1 スプラッシュ画面の表示

Android の定石っぽいものをメモとして書いておくことにした.出来る限り,正しいコードを書くように心がけるつもりだけど,Android の開発を始めて1ヶ月も経ってないので,いろいろ間違ってたりするかもしれない.間違っていたら,ぜひ教えてください.

さて今回は,スプラッシュ画面(スプラッシュスクリーン)を Android で実現する方法について.

基本的な流れは,次のとおり.

1. スプラッシュ画面(スプラッシュ画像を表示するアクティビティ)を表示する.



2. N ミリ秒後にスプラッシュ画面から遷移する.



1 は,レイアウト XML ファイルに ImageView を追加し画像を表示するだけなので割愛する.

重要なのは 2.時間を待って画面遷移をさせるために,Handler#postDelayed() を使用する.Handler#postDelayed() は,N ミリ秒後に Runnable オブジェクトの run() を実行するメソッドだ.(Handler クラスを一文で表すとなんだろうなぁ…….)

実際のコードは次のとおり.コードを見た方がわかりやすい.

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// スプラッシュ画面から、1000ミリ秒後に遷移する。
new Handler().postDelayed(new Runnable() {
public void run() {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);

// アクティビティを終了させることで、スプラッシュ画面に戻ることを防ぐ。
MainActivity.this.finish();
}
}, 1000);
}
}


スプラッシュ画面表示時間は,values/integers.xml などに入れておくのも良いかと思う.

プロジェクトファイルは下記 URL に置いてあるので,参考にしてほしい.

http://idisk.mac.com/takuya0301/Public/Android/Example001.zip

参考文献:
Android Developers: Handler
素人のアンドロイドアプリ開発日記: splash画面を作成してみる。