libro
www.tuyano.com
Google androidプログラミング入門

SurfaceViewによる高速描画 (2/5)

作成:2010-10-31 12:50
更新:2010-10-31 12:50

■SurfaceView継承クラスの基本形

では、SurfaceViewを使ったプログラムはどのように作成するのか、その基本的な書き方を見てみましょう。

SurfaceViewを利用する際には、android.viewパッケージにある「SurfaceView」クラスを継承したサブクラスを作成します。これは通常、「SurfaceHolder.Callback」というインターフェイスをimplementsしておきます。このSurfaceHolder.Callbackというものは、「サーフェイス」の生成や更新、破棄などを行った際に呼び出されるコールバック機能を実装するためのインターフェイスです。

SurfaceViewというのは、文字通り「サーフェイスを使うビュー」です。サーフェイスというのは、画面上にさまざまなグラフィックを描画し表示するためのもので、SurfaceViewではコンポーネント上にサーフェイスでさまざまな描画を表示します。まぁ、「サーフェイスっていう膜みたいなのが表面に貼り付けてあって、ここになんか描かれるんだ」といったイメージで考えておけばいいでしょう。(別に、そういう膜が実際に貼ってあるわけじゃないですよ。イメージです)

このSurfaceHolder.Callbackを実装すると、3つのメソッドを用意する必要があります。それぞれ以下のようなものです。

surfaceCreated――サーフェイスが生成された時のコールバック。
surfaceDestroyed――サーフェイスが破棄された時のコールバック。
surfaceChanged――サーフェイスが変更された時のコールバック。

これらは、コールバックであり、それぞれの処理が行われると自動的に呼び出されます。いずれのメソッドでも、「SurfaceHolder」と呼ばれるオブジェクトが引数に渡されます。このSurfaceHolderは、文字通りサーフェイスを保管し管理するためのもので、ここからサーフェイスに描画するためのCanvasを取得したりしていきます。

SurfaceViewでは、サーフェイスSurfaceHolder、そしてそのコールバックといったものの関係をまず頭に入れておくことが重要でしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

class クラス名 extends SurfaceView implements SurfaceHolder.Callback {


	@Override
	public void surfaceChanged(SurfaceHolder holder, int format,
			int width, int height) {
		// 表示が変更された時の処理
	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {
		// 生成時の処理
	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {
		// 破棄時の処理
	}

}
※関連コンテンツ

「Google androidプログラミング入門」に戻る