rio's blog

おいでいただきありがとうございます。このブログでは、ソフトウェア開発や音楽(特にB'z)、車の事などを主にてきと〜に書いていく予定です。Rio's Laboratory (http://homepage3.nifty.com/rio_i/lab/) にて、いくつか文書とフリーソフトウェアを公開してます。

[Google Android SDK]タイトルやゲームオーバのメッセージを表示します。Activity の状態遷移にも対応してみます。

画面にタイトル文字を表示してみました。

前回 は、画面に表示した●をキーパッドで動かしてみました。今回は SDK のサンプルゲームに倣って、文字だけですがタイトルやゲームオーバなどのメッセージを画面に表示します。また、Activity の状態遷移を調べて、アプリケーションの一時停止や復帰に対応したいと思います。

http://jp.youtube.com/watch?v=zUWC2CCqY0M に動画をアップロードしてあります。メッセージ表示の様子が分かると思います。


前回 作成した ball プロジェクトのソースコードをベースとして使います。追加したファイルを含めたプロジェクトのディレクトリ構造は、以下の通りです。

Activity の状態遷移

SDK のドキュメントを読むと、Activity には

の4つの状態がある様です。active と running がどう違うのかまだよく分かっていませんが…。active/running は、アプリケーションがフォーカスを持ち、ユーザが操作している状態です。paused は、フォーカスが外れていてユーザの操作対象ではないが、画面上に表示されている状態です。表示サイズが小さいアプリケーションの裏に表示されている感じでしょうか?stopped は、非表示となり完全にバックグラウンドに移動した状態です。

状態の遷移に伴って実行されるコールバックメソッドが幾つかありますが、単純なアプリケーションであれば、以下を実装しておけば良さそうです(ドキュメントおよびサンプルを見た感じ)。

FrameLayout と LinearLayout を使って、アニメーションレイヤの上に文字表示用のレイヤを用意する

SDK のサンプルゲーム(Snake/LunarLander)では、ゲーム開始やゲームオーバ時に画面上に ”Game Over" などの文字を表示してゲームっぽく見せています。文字を描画しているだけで画像を用意する必要も無さそうに見えたので、あ、これは簡単そうだと思い調べてみました。

これらのサンプルゲームでは、以下の様なレイアウトを構成して最前面に表示される TextView に文字を描いています。ちなみに、***Layout とは View を画面上にレイアウトするために用意されているクラスです。

FrameLayout(android.widget.FrameLayout) は、子として指定した View をそのまま描画します。複数の View を子として指定した場合は、後に指定された View が前に指定された View を上書きする様に描画します。

RelativeLayout(android.widget.RelativeLayout) は、親に対して、あるいは他の子に対して相対位置指定を行うことで View をレイアウトします(xxxx の右、yyyy の下など)。

今回作成するサンプルコードでは、文字を表示する部分を上下に分けて、スコアを表示する View とメッセージを表示する View を用意することにしました(↓参照)

↑で使っている LinearLayout(android.widget.LinearLayout) は、子を水平/垂直いずれかの方向に整列してレイアウトするクラスです。具体的な使い方については、サンプルコードの説明の時に説明します。

サンプルコード

以下、ソースコードの説明を書きます。Updatable.java と UpdateHandler.java は、前回 から変更無しなので省略します。

サンプルコードの説明終わり。次回は、背景と Ball に画像を表示してみたいと思います。

FC2 Blog Ranking に参加してます。クリックよろしくお願いします!

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/11/27(火) 00:51:15|
  2. Google Android
  3. | トラックバック:0
  4. | コメント:0

<<[Google Android SDK]背景とボールを画像にしてみました。 | ホーム | [Google Android SDK]ゲームへの第一歩。キーパッドでボールを動かしてみます。>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://rio1218.blog26.fc2.com/tb.php/34-c86519d1
この記事にトラックバックする(FC2ブログユーザー)