2011年3月6日日曜日

Androidその7 ~文字列の描画~

どうも、69です。


本日の内容は

文字列の描画です。
用意するプログラムは

StringEx.java
StringView.java

です。

では↓

*****StringEx.java**********************************

//自身のパッケージ名
package info.webry.at.androidid.stringex;

//利用するパッケージ名
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

//StringExクラスの定義
public class StringEx extends Activity {

//初期化
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new StringView(this));
    }
}

*************************************************

*****StringView.java********************************

//自身のパッケージ名
package info.webry.at.androidid.stringex;

//利用するパッケージ名
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

//StringViewクラスの定義
public class StringView extends View{

//コンストラクタ StringViewの定義
public StringView(Context context){
super(context);
setBackgroundColor(Color.WHITE);
}

//描画 onDrawメソッドの定義
@Override
protected void onDraw(Canvas canvas){

//描画オブジェクトの生成
Paint paint=new Paint();
//アンチエイリアス
paint.setAntiAlias(true);

//文字列のサイズと文字色の指定
paint.setTextSize(24);
paint.setColor(Color.rgb(0, 0, 0));

//画面サイズの取得
canvas.drawText("画面サイズ:"+getWidth()+"X"+getHeight(),0, 60, paint);

//文字幅サイズの取得
canvas.drawText("文字幅:"+(int)paint.measureText("A"), 0, 60*2, paint);

//アセント・ディアセントの取得
canvas.drawText("アセント:"+(int)paint.ascent(),0,60*3,paint);
canvas.drawText("ディセント:"+(int)paint.descent(), 0, 60*4, paint);

//24ドットの文字列の表示
paint.setTextSize(24);
paint.setColor(Color.rgb(255, 0, 0));
canvas.drawText("24dot",0,60*5,paint);

//32ドットの文字列の表示
paint.setTextSize(32);
paint.setColor(Color.rgb(0, 255, 0));
canvas.drawText("32dot",0,60*6,paint);

//48ドットの文字列の表示
paint.setTextSize(48);
paint.setColor(Color.rgb(0, 0, 255));
canvas.drawText("48dot",0,60*7,paint);
}

}

*************************************************

です。
ちょっと用語を。

コンストラクタ:オブジェクトの生成とともに自動的に呼び出される特殊なメソッド
パッケージ:クラスをひとまとめにしたもの
アセント:文字のベースラインよりも上の高さ
ディセント:文字のベースラインよりも下の高さ
アンチエイリアス:文字やラインを滑らかに見せる処理

細かい解説は次回。

おしまい。

0 件のコメント:

コメントを投稿