SSブログ

Androidアプリ ビューに文字を表示する [Androidアプリ開発]

さて、Android版のHello WorldであるHelloAndroidを作成することができた。
Android SDKのプロジェクト作成ウイザードが、一通りのソースファイルを自動生成してくれたおかげて、1行もプログラムを書くことなく、HelloWorldが完成してしまった。
これでは、本当にプログラムを作ったとはいえない気がする。せめて自分でprintf関数を呼び出して好きな文字列を表示させてみたい。

C言語でのHello Worldは、printfで標準出力に"Hello, World\n"といった文字列を表示するものである。Androidアプリでは標準出力というものがない(本当はあるかも知れないが、ここではないと言い切ってしまう)。
そこで、標準出力ではなく、画面上に表示することにする。

Androidではアクティビティの中にあるビューに対して何かを表示することができる。Windowsでいうと、アクティビティがウインドウで、ビューはクライアントエリアといったところか。
HelloAndroidでは、ビューがmain.xmlで定義されたものになっている。main.xmlの定義を変更することで、表示される文字列を変更することもできるが、それでは面白くない。printfっぽいものを使っていないから。
printfっぽいものを使うには、自分でViewを作成する必要がある。作成したViewをsetContentViewで指定してやれば、自分で作ったビューが表示される。

まぁ、やってみるべし。その方が早い。

まずは、Viewを継承してHelloAndroidViewクラスを作る。

import android.view.View;

public class HelloAndroidView extends View {

}

コンストラクタが必要とかいわれるので、作ってやる。

import android.content.Context;
import android.view.View;

public class HelloAndroidView extends View {

	public HelloAndroidView(Context context) {
		super(context);
		// TODO 自動生成されたコンストラクター・スタブ
	}

}

eclipseはimportなどを自動でやってくれるので便利。

とりあえず、ビューはできたものとする。これをsetContentViewで指定する。以下のようにHelloAndroidActivityの方を変更する。

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        setContentView(new HelloAndroidView(this));
    }
}

これで、実行してみると、Hello Worldと表示されているものが出なくなった。失敗?、いやいやこれで正しいのである。HelloAndroidViewでは何も表示していないので、これで正解。

onDraw

ビューで何かを表示する場合は、ViewのonDrawメソッドをオーバーライドして行う。

public class HelloAndroidView extends View {

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

	protected void onDraw(Canvas canvas){
		Paint paint = new Paint();
		paint.setColor(Color.WHITE);
		canvas.drawText("好きな文字書いてね", 20, 30, paint);
	}
}

onDrawには、Canvasが引数で渡ってくる。このcanvasオブジェクトを使って、画面に描画することができる。Paintオブジェクトは、描画時の色などを指定するためのもの。例では、文字の色を白に設定している。Canvasオブジェクトのメソッドには、drawCircleやdrawRectなど図形を描画するメソッドもある。例では、drawTextで文字列を描画している。
Android APIのドキュメントは以下のURLにある。
http://developer.android.com/

残念ながら、日本語に翻訳されたものは少ししかない。

HelloAndroidView.png

本日はここまで。



サイト内を検索

nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。



Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

イラストで理解 SQL はじめて入門

イラストで理解 SQL はじめて入門

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/16
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。