com.nttdocomo.ui
クラス Font

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

public class Font
extends 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  |      -        |
 +-------+-------+---------------+---------------+-------+-------+
 

[DoJa-2.0]
デフォルトフォントは、FACE_SYSTEM|SIZE_MEDIUM|STYLE_PLAIN です。 getFontで指定されたタイプがサポートされていない場合はデフォルトフォントを取得します。 getFontで指定されたフェース、サイズ、スタイルがサポートされていない場合は、サポートされていない 要素を FACE_SYSTEM、SIZE_MEDIUM、STYLE_PLAIN に置き換えたフォントを取得します。

[DoJa-3.0]
初期状態のデフォルトフォントは、FACE_SYSTEM|SIZE_TINY|STYLE_PLAINです。 getFontで指定されたタイプがサポートされていない場合は初期状態のデフォルトフォントを取得します。 getFontで指定されたフェース、サイズ、スタイルがサポートされていない場合は、 サポートされていない要素を FACE_SYSTEM、SIZE_TINY、STYLE_PLAIN に置き換えたフォントを取得します。 getDefaultFont()メソッドが返す値は、 setDefaultFont(Font)メソッドにより設定した値です。 設定していない場合、初期状態のデフォルトフォントを返します。


フィールドの概要
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 SIZE_TINY
           フォントのサイズで、タイニーサイズを表します(=0x70000400)。
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)。
 
コンストラクタの概要
protected Font()
          アプリケーションが直接このクラスのインスタンスを生成することはできません。
 
メソッドの概要
 int getAscent()
          フォントのアセント(ベースラインから上端までの長さ)を取得します。
 int getBBoxHeight(String str)
          指定した文字列のバウンディングボックスの高さを取得します。
 int getBBoxHeight(XString xStr)
           指定したXStringの文字列のバウンディングボックスの高さを取得します。
 int getBBoxWidth(String str)
          指定した文字列のバウンディングボックスの幅を取得します。
 int getBBoxWidth(XString xStr)
           指定したXStringの文字列のバウンディングボックスの幅を取得します。
 int getBBoxWidth(XString xStr, int off, int len)
           指定したXStringの文字列の一部のバウンディングボックスの幅を取得します。
static Font getDefaultFont()
          デフォルトのフォントを取得します。
 int getDescent()
          フォントのディセント(ベースラインから下端までの長さ)を取得します。
static Font getFont(int type)
          引数で指定されたフォントオブジェクトを取得します。
 int getHeight()
          フォントの高さを取得します。
 int getLineBreak(String str, int off, int len, int width)
          指定した文字列の改行位置を取得します。
 int getLineBreak(XString xStr, int off, int len, int width)
           指定したXStringの文字列の改行位置を取得します。
static void setDefaultFont(Font f)
           デフォルトフォントを設定します。
 int stringWidth(String str)
          指定した文字列の幅を取得します。
 int stringWidth(XString xStr)
           指定したXStringの文字列の幅を取得します。
 int stringWidth(XString xStr, int off, int len)
           指定したXStringの文字列の一部の幅を取得します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TYPE_DEFAULT

public static final int TYPE_DEFAULT
デフォルトフォントを表すフォントタイプです(=0x00000000)。
[DoJa-3.0]
初期状態のデフォルトフォント(FACE_SYSTEM|SIZE_TINY|STYLE_PLAIN)を意味します。

関連項目:
定数フィールド値

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)。
端末によってはサポートされない場合があります。

関連項目:
定数フィールド値

SIZE_TINY

public static final int SIZE_TINY
フォントのサイズで、タイニーサイズを表します(=0x70000400)。

導入されたバージョン:
DoJa-3.0
関連項目:
定数フィールド値
コンストラクタの詳細

Font

protected Font()
アプリケーションが直接このクラスのインスタンスを生成することはできません。

メソッドの詳細

getFont

public static Font getFont(int type)
引数で指定されたフォントオブジェクトを取得します。フォントを指定する方法には、 タイプを指定する方法と、フォントのフェイス、スタイル、サイズを指定する方法の2つの 方法があります。
タイプを指定する方法
引数 type に TYPE_DEFAULTを指定すると、機種依存のデフォルトフォントが 使用されます。TYPE_HEADINGを指定すると、機種依存の見出し用のフォントが使用されます。
[DoJa-3.0] TYPE_DEFAULTを指定すると、初期状態のデフォルトフォントが使用されます。

フォントのフェイス、スタイル、サイズを指定する方法
引数 type に、フェイス、スタイル、サイズを表す定数をビット毎の論理和を取って指定します。 たとえば、システムフォントかつボールドスタイルかつミディアムサイズのフォントを取得する場合、
f = getFont(FACE_SYSTEM|STYLE_BOLD|SIZE_MEDIUM);
と指定します。必ず、ビット毎の論理和を使用してください。なお、 フォントのフェイス、スタイル、サイズを指定する場合は、TYPE_DEFAULT,TYPE_HEADINGを 同時に指定しても、その指定は無視されます。

いずれの指定方法の場合でも、 指定されたフォントが端末にない場合は、代替のフォントオブジェクトを返します。

システムによってはフォントオブジェクトは静的に生成されており、 同じフォントタイプを指定した場合は同一のオブジェクトが返されることもあります。

パラメータ:
type - フォントタイプを指定します。
戻り値:
フォントオブジェクトを返します。
例外:
IllegalArgumentException - 引数 type に不正な値が指定された場合に発生します。

getDefaultFont

public static Font getDefaultFont()
デフォルトのフォントを取得します。

[DoJa-1.0]
機種依存のデフォルトのフォントを取得します。
[DoJa-2.0]
FACE_SYSTEM|SIZE_MEDIUM|STYLE_PLAINのフォントを取得します。

[DoJa-3.0]
setDefaultFont(Font)で設定したフォントオブジェクトを返します。 初期状態ではFACE_SYSTEM|SIZE_TINY|STYLE_PLAINのフォントを取得します。

戻り値:
デフォルトフォントオブジェクトを返します。

setDefaultFont

public static void setDefaultFont(Font f)
デフォルトフォントを設定します。 初期状態を除き、getDefaultFont()メソッドは、 このメソッドで設定したフォントオブジェクトを返します。

パラメータ:
f - デフォルトフォントに設定するフォントオブジェクトを指定します。
例外:
NullPointerException - 引数 f が null の場合に発生します。
導入されたバージョン:
DoJa-3.0

getAscent

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

戻り値:
フォントのアセントを返します。

getDescent

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

戻り値:
フォントのディセントを返します。

getHeight

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

戻り値:
フォントの高さを返します。

stringWidth

public int stringWidth(String str)
指定した文字列の幅を取得します。

パラメータ:
str - 文字列を指定します。
戻り値:
文字列を表示するのに必要な幅を返します。
例外:
NullPointerException - 引数 str に null が指定された場合に発生します。

getBBoxWidth

public int getBBoxWidth(String str)
指定した文字列のバウンディングボックスの幅を取得します。

パラメータ:
str - 文字列を指定します。
戻り値:
幅を返します。
例外:
NullPointerException - 引数 str に null が指定された場合に発生します。

getBBoxHeight

public int getBBoxHeight(String str)
指定した文字列のバウンディングボックスの高さを取得します。
[DoJa-3.0]
引数 str に 空文字列("")が指定された場合、0 が返ります。

パラメータ:
str - 文字列を指定します。
戻り値:
高さを返します。
例外:
NullPointerException - 引数 str に null が指定された場合に発生します。

getLineBreak

public int getLineBreak(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の幅で 折り返しながら文字列を表示するものです。 ただし、引数のy座標はベースラインのy座標です。

 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 startIdx = 0;
     int endIdx = 0;
     int h = f.getHeight();
     while (len > 0) {
        endIdx = f.getLineBreak(str, startIdx, len, width);
        g.drawChars(data, x, y, startIdx, endIdx - startIdx);
        len -= (endIdx - startIdx);
        startIdx = endIdx;
        y += h;
     }
 }

パラメータ:
str - 文字列を指定します。
off - 計算する文字列のオフセットを指定します。
len - 計算する文字列の長さを指定します。
width - 行の幅をピクセル単位で指定します。
戻り値:
次の改行位置のオフセットを返します。
例外:
NullPointerException - 引数 str に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、引数 len に負の値が指定された場合、引数 off または引数 off + len の値が str の長さを超える場合に発生します。
IllegalArgumentException - 引数 width に負の値が指定された場合に発生します。

getBBoxHeight

public int getBBoxHeight(XString xStr)
指定したXStringの文字列のバウンディングボックスの高さを取得します。 引数に 空("")のXStringの文字列が指定された場合、0 が返ります。

パラメータ:
xStr - XStringの文字列を指定します。
戻り値:
高さを返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
導入されたバージョン:
DoJa-3.0

getBBoxWidth

public int getBBoxWidth(XString xStr)
指定したXStringの文字列のバウンディングボックスの幅を取得します。

パラメータ:
xStr - XStringの文字列を指定します。
戻り値:
幅を返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
導入されたバージョン:
DoJa-3.0

getBBoxWidth

public int getBBoxWidth(XString xStr,
                        int off,
                        int len)
指定したXStringの文字列の一部のバウンディングボックスの幅を取得します。

パラメータ:
xStr - XStringの文字列を指定します。
off - 計算する文字列のオフセットを指定します。
len - 計算する文字列の長さを指定します。
戻り値:
幅を返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、 引数 len に負の値が指定された場合、 引数 off または引数 off + len の値が 文字列の長さを超える場合に発生します。
導入されたバージョン:
DoJa-3.0

stringWidth

public int stringWidth(XString xStr)
指定したXStringの文字列の幅を取得します。

パラメータ:
xStr - XStringの文字列を指定します。
戻り値:
文字列を表示するのに必要な幅を返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
導入されたバージョン:
DoJa-3.0

stringWidth

public int stringWidth(XString xStr,
                       int off,
                       int len)
指定したXStringの文字列の一部の幅を取得します。

パラメータ:
xStr - XStringの文字列を指定します。
off - 計算する文字列のオフセットを指定します。
len - 計算する文字列の長さを指定します。
戻り値:
部分文字列を表示するのに必要な幅を返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、 引数 len に負の値が指定された場合、 引数 off または引数 off + len の値が 文字列の長さを超える場合に発生します。
導入されたバージョン:
DoJa-3.0

getLineBreak

public int getLineBreak(XString xStr,
                        int off,
                        int len,
                        int width)
指定したXStringの文字列の改行位置を取得します。 offからlen文字の部分文字列の幅がwidthより大きい場合は、 つぎの行の先頭になる文字列の位置を返します。 また、幅が、width以下の場合は、off+len が戻り値として返ります。

パラメータ:
xStr - XStringの文字列を指定します。
off - 計算する文字列のオフセットを指定します。
len - 計算する文字列の長さを指定します。
width - 行の幅をピクセル単位で指定します。
戻り値:
次の改行位置のオフセットを返します。
例外:
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、 引数 len に負の値が指定された場合、 引数 off または引数 off + len の値が xStr の長さを超える場合に発生します。
IllegalArgumentException - 引数 width に負の値が指定された場合に発生します。
導入されたバージョン:
DoJa-3.0


NTT DoCoMo,Inc.

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

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

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