Nanashi-softプログラマ専用iアプリ


◇iアプリ(DoJa)-フォント指定-

フォントをきちんと指定しないと,端末毎にデフォルト文字サイズが異なり,変になります

○フォント指定

paintの先頭で指定します

  public void paint(Graphics g){
    //希望のフォントサイズを取得
    Font f=Font.getFont(Font.FACE_SYSTEM|Font.STYLE_PLAIN|Font.SIZE_MEDIUM);
    //フォントを画面に反映
    g.setFont(f);

    g.setColor(Graphics.getColorOfName(Graphics.WHITE));
    g.fillRect(0, 0, 240, 240);

    g.setColor(Graphics.getColorOfName(Graphics.BLACK));
    g.drawString(Integer.toString(i), 0, 20);

    paFlg = false;
  }

○表示位置を調整する

文字を希望した位置にピッタリ表示するにはどうすれば良いのでしょうか?
画像で枠を表示して,その中にピッタリと文字を入れたい場合に仕組みを理解していなければ苦労します

Javaの文字表示は,ベースラインを基準としています
つまり,ベースライン分下にずらせば文字の左上を起点とした指定が行えるようになります

  public void paint(Graphics g){
    Font f=Font.getFont(Font.FACE_SYSTEM|Font.STYLE_PLAIN|Font.SIZE_MEDIUM);
    g.setFont(f);
    //ベースライン取得
    int ac=f.getAscent();

    g.setColor(Graphics.getColorOfName(Graphics.WHITE));
    g.fillRect(0, 0, 240, 240);

    g.setColor(Graphics.getColorOfName(Graphics.BLACK));
    //ベースライン分下にずらす
    g.drawString(Integer.toString(i), 0, ac + 0);

    paFlg = false;
  }

これで,左上隅に文字を表示する事ができます

横10,縦20の位置に表示したければ,以下のように記述すれば良いので直感的に操作できます

g.drawString(Integer.toString(i), 10, ac + 20);

○iアプリ(DoJa)固有なこと

505シリーズ以降から,フォントサイズは固定されています
Font.SIZE_TINY 12×12
Font.SIZE_SMALL 16×16
Font.SIZE_MEDIUM 24×24
Font.SIZE_LARGE 30×30

但し,このサイズはdrawStringで描画を行った際の文字間隔にすぎません
機種によって,文字そのものの大きさが異なります
文字の周囲に上記サイズになるように余白がある機種がいる,と言った方が分かり易いでしょうか


TOPプログラマ専用iアプリ