僕がAndroidoアプリ開発の際に練習用に作成したプログラムになります。
クラスはStringEXActivityクラスとStringViewクラスの二つからなっています。
・StringEXActivityクラス
package net.npaka.stringex;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
public class StringEXActivity extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new StringView(this));
}
}
・StringViewクラス
package net.npaka.stringex;
import android.content.Context;
import android.graphics.*;
import android.view.View;
public class StringView extends View {
public StringView(Context context) {
super(context);
setBackgroundColor(Color.BLACK);
}
protected void onDraw(Canvas canvas) {
// 描画オブジェクトの生成
Paint paint = new Paint();
paint.setAntiAlias(true);
// 文字サイズと文字色の設定
paint.setTextSize(24);
paint.setColor(Color.rgb(255, 255, 255));
// 画面サイズの取得
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(0, 0, 255));
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(255, 0, 0));
canvas.drawText("48dot", 0, 60 * 7, paint);
}
}
この二つのクラスのうちStringEXactivityクラスについてはただStringViewクラスを読み出しているだけです。
StringViewクラスではpaintメソッドとcanvasメソッドを用いて文字列の描画を行っています。
コメントを細かく残してあるのでこのくらいのプログラムなら特に解説することもないよね

実行結果は下のようになっています。

ちなみに言うとアセントとディセントというのはフォントの上部分と下部分のことです。ちなみに言うと上下の間の部分をレディングと呼びます。
例:
この線の部分がレディングで上をアセント、下がディセントってことですね!
アセント+ディセント+レディング=フォントの高さということになります。
ちょっとした豆知識でした笑

