Home > ソフトウエア | 技術 > Androidをやってみる

Androidをやってみる

androidをやってみる

いろいろあってandroidをやってみることになった

まず、Android SDKとNetBeans用のプラグインをダウンロード、インストールした
(Eclipseが標準らしいが、自分はNetBeansを使っていたので)

・HelloWorld
とりあえず、HelloWorldって出してみる
androidではコントロールの類はWidgetというものとして用意されているらしい
テキストを表示するにはTextViewというウィジットを使う
まず、プロジェクト作成、プロジェクトのタイプをAndroid Applicationにすると、
最低限必要な要素は勝手に生成される
とりあえずProject NameとActivity Nameは”Hello World”に
するとActivityクラスを継承したHelloWorldクラスが作成されるので、
そのOnCreate関数

	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		 // ToDo add your GUI initialization code here
	}

		TextView tv = new TextView(this);
		tv.setText("Hello World.");
		setContentView(tv);

を追加

実行するとAndroidシミュレーターが起動し、以下のように表示される

・ボタンを作る
androidでは1つのActivity(androidアプリケーションの画面)に1つのViewしか表示できないらしい(WidgetもView)
複数のViewを表示するにはViewGroupの派生クラスのLayoutを使う
とりあえず、LinearLayoutクラスを使ってみる
テキストに加えボタンを追加する、OnCreate関数を以下のように変更する

	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		// ToDo add your GUI initialization code here
		LinearLayout layout = new LinearLayout(this);
		layout.setOrientation(LinearLayout.VERTICAL);

		//
		TextView tv = new TextView(this);
		tv.setText("Hello World.");
		layout.addView(tv);

		//
		Button bt1 = new Button(this);
		bt1.setText("Button1");
		layout.addView(bt1);

		Button bt2 = new Button(this);
		bt2.setText("Button2");
		layout.addView(bt2);

		setContentView(layout);
	}

実行結果

・ボタンにイベントをつける
せっかくボタンを作ったので、イベントを作成してみる
イベントの取り扱いにはListenerというものを使う
今回はボタンをクリックの処理なのでOnClickListenerクラスを使う
各ボタンのSetOnClickListener関数でOnClickListenerクラスを登録する
テストのため、ボタン2をクリックしたらTextViewの表示を変える
tv変数をfinalに変更し、以下を追加

		bt2.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				tv.setText("Click Button2.");
			}
		});

実行結果

・SurfaceView
次はSurfaceViewを使ってみる
SurfaceViewは独立したスレッドで描画が行われる、定期的な再描画などを行うアプリケーションに向いているクラスだそうだ
通常のViewではOnDraw関数内で引数canvasに描画するのが一般的だが、SurfaceViewでは任意のタイミングでcanvasを取得して描画を行う
canvasの取得、開放は以下のように行う

Canvas canvas = getHolder().lockCanvas();
getHolder().unlockCanvasAndPost(canvas);

以下ソース

public class HelloWorld extends Activity{

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		// ToDo add your GUI initialization code here
		SView view = new SView(this);
		setContentView(view);
	}

	public class SView extends SurfaceView implements Runnable
	{
		Thread thread;
		Paint paint;
		int Cnt;
		public SView(Context context)
		{
			super(context);

			setFocusable(true);

			paint = new Paint();
			paint.setColor(Color.RED);
			paint.setTextSize(100);

			Cnt = 0;

			thread = new Thread(this);
			thread.start();
		}
        
		public void run()
		{
			while(true)
			{
				Canvas canvas = getHolder().lockCanvas();
				if(canvas != null)
				{
					canvas.drawColor(Color.WHITE);
					canvas.drawText(String.valueOf(Cnt),0,100,paint);
					Cnt++;
					if(Cnt >= 10000)
					{
						Cnt = 0;
					}
					getHolder().unlockCanvasAndPost(canvas);
				}
			}
		}
	}
}

実行結果

(おまけ)
Toastというものが結構便利

Toast.makeText(context,"Toast",Toast.LENGTH_SHORT).show();

とかで、メッセージを表示できる

終り

Home > ソフトウエア | 技術 > Androidをやってみる

Search
Feeds
Authorized
奨学金支援制度
Meta

Return to page top