Android SDKをインストールしたら、とりあえずAndroidアプリケーションを作ってみます。

Androidのアプリケーションは、Activityというウインドウを割り当てられユーザーインターフェースを配置するオブジェクトを持っていて、ここにGUIや描画機能を持つView(のサブクラス)を配置していく構造になっています。今回は、ActivityとViewというAndroidアプリの基本構造を確認する意味で「全体を紫に塗りつぶす」だけのViewを配置したActivityからアプリケーションを作ってみることにしましょう。

Eclipseでは、プロジェクトの新規作成でAndroidプロジェクトを作る際にActivityクラスの生成を指定することができます。この設定を行うと、自動的に指定された名前でActivityのサブクラス(ソース)を作成し、そのActivityを表示するAndroidアプリケーションをビルドするよう設定してくれます。
今回は、アプリケーション名をActViewTest、Activityクラス名をActViewTestActivityとしてプロジェクトを作成しました。

Eclipseによって新規作成されたプロジェクトのソースを見ると、既にActViewTestActivityクラスのソースが生成されていますね。さらに、独自のViewクラスActViewTestViewを追加してみましょう。

新規に作成するActViewTestView.java(以下掲載ソースはパッケージ指定部分を省略)では、描画時に呼び出されるonDraw()をオーバーライドしてViewの全体を紫(色をあらわすARGB値で0xffff00ff)で塗りつぶす処理を実装してみました。

import android.content.Context;
import android.view.View;
import 	android.graphics.Canvas;
import 	android.graphics.Paint;

public class ActViewTestView extends View {

	public ActViewTestView(Context context) {
		super(context);
	}

	@Override
	protected void onDraw(Canvas cv) {

		Paint p = new Paint();

		p.setColor(0xffff00ff);

		cv.drawRect(0, 0, getWidth(), getHeight(), p);

	}

}

ActViewTestActivity.javaの方も、生成時(onCreate())にActViewTestViewを作って内部に配置するよう書き換えましょう。

import android.app.Activity;
import android.os.Bundle;

public class ActViewTestActivity extends Activity {

	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

    	super.onCreate(savedInstanceState);

    	setContentView(new ActViewTestView(this));

    }

}

さっそくビルドして実行してみると……アプリケーションが起動すると全体が紫に塗りつぶされました。onDraw()内の色の設定や塗りつぶす範囲を変えて、実際にActViewTestViewが表示されていることを確認してみましょう。

これで、一つのActivityをメインウインドウ的に使って内部にViewのサブクラスを配置する一般的なAndroidアプリケーションの基本構造を作ることができました。


創作プログラミングの街