com.nttdocomo.ui
クラス Font

java.lang.Object
  |
  +--com.nttdocomo.ui.Font

public class Font
extends java.lang.Object

文字の種別を定義します。フォントクラスは、フォントならびにフォントのメトリクスを扱います。 getFont の引数は、以下のようなフォーマットになっています。 タイプを指定する場合は、下位8 ビットがタイプを意味します。また、 それ以外のビットはすべて 0 になっています。

      |<- 4 ->|<- 4 ->|<----- 8 ----->|<----- 8 ----->|<----- 8 ----->|

      +-------+-------+-------+-------+-------+-------+-------+-------+

      |   0   |   0   |       0       |       0       |         type  |

      +-------+-------+---------------+---------------+-------+-------+
 
フェース、スタイル、サイズを指定する場合は、上位4 ビットは、0111 になっています。 その次の4 ビットがface, そのつぎの8 ビットが、style、そのつぎの8 ビットがsizeを表します。 下位8 ビットは、無視されます。
      |<- 4 ->|<- 4 ->|<----- 8 ----->|<----- 8 ----->|<----- 8 ----->|

      +-------+-------+-------+-------+-------+-------+-------+-------+

      | 0111  | face  |        style  |         size  |       -       |

      +-------+-------+---------------+---------------+-------+-------+
 


フィールドの概要
static int FACE_MONOSPACE
          モノスペースフォント (=0x72000000)。
static int FACE_PROPORTIONAL
          プロポーショナルフォント(=0x73000000)。
static int FACE_SYSTEM
          システムフォント (=0x71000000)。
static int SIZE_LARGE
          ラージサイズ (=0x70000300)。
static int SIZE_MEDIUM
          ミディアムサイズ (=0x70000200)。
static int SIZE_SMALL
          スモールサイズ (=0x70000100)。
static int STYLE_BOLD
          ボールドスタイル (=0x70110000)。
static int STYLE_BOLDITALIC
          ボールドイタリックスタイル (=0x70130000)。
static int STYLE_ITALIC
          イタリックスタイル (=0x70120000)。
static int STYLE_PLAIN
          プレーンスタイル (=0x70100000)。
static int TYPE_DEFAULT
          デフォルトフォント (=0x00000000)。
static int TYPE_HEADING
          見出し用フォント (=0x00000001)。
 
メソッドの概要
 int getAscent()
          フォントのアセント(ベースラインから上端までの長さ)を取得します。
 int getBBoxHeight(java.lang.String str)
          指定した文字列のバウンディングボックスの高さを取得します。
 int getBBoxWidth(java.lang.String str)
          指定した文字列のバウンディングボックスの幅を取得します。
static Font getDefaultFont()
          実装定義のデフォルトのフォントを取得します。
 int getDescent()
          フォントのディセント(ベースラインから下端までの長さ)を取得します。
static Font getFont(int type)
          引数で指定されたフォントオブジェクトを取得します。
 int getHeight()
          フォントの高さを取得します。
 int getLineBreak(java.lang.String str, int off, int len, int width)
          指定した文字列の改行位置を取得します。
 int stringWidth(java.lang.String str)
          指定した文字列の幅を取得します。
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TYPE_DEFAULT

public static final int TYPE_DEFAULT
デフォルトフォント (=0x00000000)。

TYPE_HEADING

public static final int TYPE_HEADING
見出し用フォント (=0x00000001)。

FACE_SYSTEM

public static final int FACE_SYSTEM
システムフォント (=0x71000000)。

FACE_MONOSPACE

public static final int FACE_MONOSPACE
モノスペースフォント (=0x72000000)。

FACE_PROPORTIONAL

public static final int FACE_PROPORTIONAL
プロポーショナルフォント(=0x73000000)。

STYLE_PLAIN

public static final int STYLE_PLAIN
プレーンスタイル (=0x70100000)。

STYLE_BOLD

public static final int STYLE_BOLD
ボールドスタイル (=0x70110000)。

STYLE_ITALIC

public static final int STYLE_ITALIC
イタリックスタイル (=0x70120000)。

STYLE_BOLDITALIC

public static final int STYLE_BOLDITALIC
ボールドイタリックスタイル (=0x70130000)。

SIZE_SMALL

public static final int SIZE_SMALL
スモールサイズ (=0x70000100)。

SIZE_MEDIUM

public static final int SIZE_MEDIUM
ミディアムサイズ (=0x70000200)。

SIZE_LARGE

public static final int SIZE_LARGE
ラージサイズ (=0x70000300)。
メソッドの詳細

getFont

public static Font getFont(int type)
引数で指定されたフォントオブジェクトを取得します。フォントを指定する方法には、 タイプを 指定する方法と、フォントのフェイス、スタイル、サイズを指定する方法の2 つの 方法がありま す。

タイプを指定する方法

引数 type に TYPE_DEFAULT を指定すると、機種依存のデフォルトフォントが 使用され ます。TYPE_HEADING を指定すると、機種依存の見出し用のフォントが使用されます。

フォントのフェイス、スタイル、サイズを指定する方法

引数 type に、フェイス、スタイル、サイズを表す定数をビット毎の論理和を取って指定します。 たとえば、システムフォントかつボールドスタイルかつミディアムサイズのフォントを取得する場 合、
                   f = getFont(FACE_SYSTEM|STYLE_BOLD|SIZE_MEDIUM);
と指定します。必ず、ビット毎の論理和を使用してください。なお、 フォントのフェイス、スタイル、 サイズを指定する場合は、TYPE_DEFAULT,TYPE_HEADING を 同時に指定しても、そ の指定は無視されます。いずれの指定方法の場合でも、 指定されたフォントが端末にない場合は、代替のフォントオブジェクトを返します。 システムによってはフォントオブジェクトは静的に生成されており、 同じフォントタイプを指定し た場合は同一のオブジェクトが返されることもあります。
パラメータ:
type - フォントタイプを指定します。
戻り値:
フォントオブジェクトを返します。

getDefaultFont

public static Font getDefaultFont()
実装定義のデフォルトのフォントを取得します。
戻り値:
デフォルトフォントオブジェクトを返します。

getAscent

public int getAscent()
フォントのアセント(ベースラインから上端までの長さ)を取得します。
戻り値:
フォントのアセントを返します。

getDescent

public int getDescent()
フォントのディセント(ベースラインから下端までの長さ)を取得します。
戻り値:
フォントのディセントを返します。

getHeight

public int getHeight()
フォントの高さを取得します。 この値はアセントとディセントの合計と等しくなります。
戻り値:
フォントの高さを返します。

stringWidth

public int stringWidth(java.lang.String str)
指定した文字列の幅を取得します。
パラメータ:
str - 文字列を指定します。
戻り値:
文字列を表示するのに必要な幅を返します。

getBBoxWidth

public int getBBoxWidth(java.lang.String str)
指定した文字列のバウンディングボックスの幅を取得します。
パラメータ:
str - 文字列を指定します。
戻り値:
幅を返します。

getBBoxHeight

public int getBBoxHeight(java.lang.String str)
指定した文字列のバウンディングボックスの高さを取得します。
パラメータ:
str - 文字列を指定します。
戻り値:
高さを返します。

getLineBreak

public int getLineBreak(java.lang.String str,
                        int off,
                        int len,
                        int width)
指定した文字列の改行位置を取得します。off からlen 文字の部分文字列の幅が width より 大きい場合は、つぎの行の先頭になる文字列の位置を返します。また、 幅が、width 以下の 場合は、off+len が戻り値として返ります。たとえば、
      String s ="プログラミング"; 
      int idx =font.getLineBreak(s,0,s.length,50);
で、"プログラ" の幅が48 ピクセルで、"プログラミ" の幅が60 ピクセルの場合、 idx の値は、 4 になります。この位置は、次の行の先頭になる文字の位置です。 以下に使用例を示します。このメソッドは、指定した座標(x,y)から、width の幅で 折り返しなが ら、文字列を表示するものです。
	public void drawText(Graphics g, Font f, String str, int x, int
	y, int width) {
		int len = str.length();
		char[] data = new char[len];
		str.getChars(0, len, data, 0);
		int fontHeight = f.getHeight();
		int startIdx = 0;
		int endIdx = 0;
		while (len > 0) {
			endIdx = f.getLineBreak(str, startIdx, len, width);
			g.drawChars(data, x, y, startIdx, endIdx-startIdx);
			y = y + fontHeight;
			len = len - (endIdx-startIdx);
			startIdx = endIdx;
		}
	}                                                                   
パラメータ:
str - 文字列を指定します。
off - 計算する文字列のオフセットを指定します。
len - 計算する文字列の長さを指定します。
width - 行の幅をピクセル単位で指定します。
戻り値:
次の改行位置のオフセットを返します。


本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「i-mode/アイモード」はNTTドコモの登録商標、「iアプリ/iαppli/アイアプリ」はNTTドコモの商標です。