Objectcom.nttdocomo.ui.Font
文字の種別を定義します。 フォントクラスは、 フォントならびにフォントのメトリクスを扱います。 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 | - | +-------+-------+---------------+---------------+-------+-------+
getDefaultFont()メソッドが返す値は、
setDefaultFont(Font)メソッドにより設定した値です。
設定していない場合、初期状態のデフォルトフォントを返します。
FACE_SYSTEM|SIZE_TINY|STYLE_PLAIN です。
getFont(int) で指定されたタイプ、フェース、サイズ、
スタイルがサポートされていない場合には、以下のように振る舞います。
FACE_SYSTEM、STYLE_PLAIN
に置き換えたフォントを取得します。
SIZE_ から始まる要素を、
指定されたサイズより小さく、かつ、
一番近いサイズを表す要素に置き換えたフォントを取得します。
getDefaultFont() メソッドが返す値は、
setDefaultFont(Font)メソッドにより設定した値です。
設定していない場合、初期状態のデフォルトフォントを返します。
[DoJa-5.0 (903i) 以降]
getFont(int type, int fontSize) にてフォントサイズを
dot 単位で指定することができます。詳細はメソッドの説明を参照してください。
| フィールドの概要 | |
static int |
FACE_MONOSPACE [iアプリオプションAPI]
フォントのフェースで、モノスペースフォントを表します(=0x72000000)。 |
static int |
FACE_PROPORTIONAL [iアプリオプションAPI]
フォントのフェースで、プロポーショナルフォントを表します(=0x73000000)。 |
static int |
FACE_SYSTEM
フォントのフェースで、システムフォントを表します(=0x71000000)。 |
static int |
SIZE_LARGE [iアプリオプションAPI]
フォントのサイズで、ラージサイズを表します(=0x70000300)。 |
static int |
SIZE_MEDIUM
フォントのサイズで、ミディアムサイズを表します(=0x70000200)。 |
static int |
SIZE_SMALL [iアプリオプションAPI]
フォントのサイズで、スモールサイズを表します(=0x70000100)。 |
static int |
SIZE_TINY
フォントのサイズで、タイニーサイズを表します(=0x70000400)。 |
static int |
STYLE_BOLD [iアプリオプションAPI]
フォントのスタイルで、ボールドスタイルを表します(=0x70110000)。 |
static int |
STYLE_BOLDITALIC [iアプリオプションAPI]
フォントのスタイルで、ボールドイタリックスタイルを表します(=0x70130000)。 |
static int |
STYLE_ITALIC [iアプリオプションAPI]
フォントのスタイルで、イタリックスタイルを表します(=0x70120000)。 |
static int |
STYLE_PLAIN
フォントのスタイルで、プレーンスタイルを表します(=0x70100000)。 |
static int |
TYPE_DEFAULT
デフォルトフォントを表すフォントタイプです(=0x00000000)。 |
static int |
TYPE_HEADING [iアプリオプションAPI]
見出し用フォントを表すフォントタイプです(=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)
引数で指定されたフォントオブジェクトを取得します。 |
static Font |
getFont(int type,
int fontSize) [iアプリオプションAPI]
引数で指定されたフォントタイプと、dot 単位で指定したフォントサイズからフォントオブジェクトを取得します。 |
int |
getHeight()
フォントの高さを取得します。 |
int |
getLineBreak(String str,
int off,
int len,
int width)
指定した文字列の改行位置を取得します。 |
int |
getLineBreak(XString xStr,
int off,
int len,
int width)
指定したXStringの文字列の改行位置を取得します。 |
static int[] |
getSupportedFontSizes() [iアプリオプションAPI]
この端末でサポートしている dot 単位で指定可能なフォントサイズの配列を取得します。 |
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 |
| フィールドの詳細 |
public static final int TYPE_DEFAULT
public static final int TYPE_HEADING [iアプリオプションAPI]
public static final int FACE_SYSTEM
public static final int FACE_MONOSPACE [iアプリオプションAPI]
public static final int FACE_PROPORTIONAL [iアプリオプションAPI]
public static final int STYLE_PLAIN
public static final int STYLE_BOLD [iアプリオプションAPI]
public static final int STYLE_ITALIC [iアプリオプションAPI]
public static final int STYLE_BOLDITALIC [iアプリオプションAPI]
public static final int SIZE_SMALL [iアプリオプションAPI]
[DoJa-3.5 (900iC) まで]
端末によってはサポートされない場合があります。
[DoJa-4.0 (901i) 以降]
必須のフォントサイズです。
public static final int SIZE_MEDIUM
public static final int SIZE_LARGE [iアプリオプションAPI]
[DoJa-3.5 (900iC) まで]
端末によってはサポートされない場合があります。
[DoJa-4.0 (901i) 以降]
必須のフォントサイズです。
public static final int SIZE_TINY
| コンストラクタの詳細 |
protected Font()
| メソッドの詳細 |
public static Font getFont(int type)
f = getFont(FACE_SYSTEM|STYLE_BOLD|SIZE_MEDIUM);と指定します。必ず、ビット毎の論理和を使用してください。なお、 フォントのフェイス、スタイル、サイズを指定する場合は、TYPE_DEFAULT,TYPE_HEADINGを 同時に指定しても、その指定は無視されます。
いずれの指定方法の場合でも、 指定されたフォントが端末にない場合は、代替のフォントオブジェクトを返します。
システムによってはフォントオブジェクトは静的に生成されており、 同じフォントタイプを指定した場合は同一のオブジェクトが返されることもあります。
type - フォントタイプを指定します。
IllegalArgumentException - 引数 type に不正な値が指定された場合に発生します。
public static Font getFont(int type,
int fontSize) [iアプリオプションAPI]
引数 type の設定方法については getFont(int) を参照してください。
ただし、type のフォントサイズ部分は無視されます。
また、 getFont(int) とは異なり、引数 type にタイプ
(TYPE_DEFAULT, TYPE_HEADING)
を設定することはできません。引数 type にタイプを設定した場合、
不正とみなされ例外が発生します。
フォントサイズには、この端末にてサポートされているフォントサイズを設定します。
フォントサイズはフォントの高さを指定します(単位は dot)。
サポートされているフォントサイズは getSupportedFontSizes()
にて取得可能です。
このメソッドは、サポートが必須となっているフォントサイズ (SIZE_SMALL,
SIZE_MEDIUM, SIZE_LARGE, SIZE_TINY)
のみサポートする端末では未サポートです。
このメソッドをサポートしていない端末から呼ばれた場合、例外が発生します。
また、このメソッドの引数にサポートされていないフォントサイズを設定した場合も、
例外が発生します。
引数 type の解釈については、このメソッドに規定されていることを除いて、
getFont(int) と同様となります。
type - フォントタイプを指定します。fontSize - フォントサイズを指定します。フォントサイズにはフォントの高さ(単位は dot)を指定します。
UnsupportedOperationException - 端末がこのメソッドをサポートしていない場合に発生します。
IllegalArgumentException - 引数 fontSize に、この端末がサポートしていないフォントサイズが指定された場合に発生します。
IllegalArgumentException - 引数 type に不正な値が指定された場合に発生します。
public static int[] getSupportedFontSizes() [iアプリオプションAPI]
サポートしているフォントサイズを昇順に並べた配列を取得することができます。 取得できるフォントサイズはフォントの高さ(単位は dot)です。
取得できるフォントサイズの配列は、端末でサポートする全てのフォントサイズ (サポートが必須となっているフォントサイズを含む) の配列です。
このメソッドは、サポートが必須となっているフォントサイズ (SIZE_SMALL,
SIZE_MEDIUM, SIZE_LARGE, SIZE_TINY)
のみサポートする端末では未サポートです。
このメソッドをサポートしていない端末から呼ばれた場合、例外が発生します。
UnsupportedOperationException - 端末がこのメソッドをサポートしていない場合に発生します。
public static Font getDefaultFont()
[DoJa-1.0 のみ]
機種依存のデフォルトのフォントを取得します。
[DoJa-2.x のみ]
FACE_SYSTEM|SIZE_MEDIUM|STYLE_PLAINのフォントを取得します。
[DoJa-3.0 (505i) 以降]
setDefaultFont(Font)で設定したフォントオブジェクトを返します。
初期状態ではFACE_SYSTEM|SIZE_TINY|STYLE_PLAINのフォントを取得します。
public static void setDefaultFont(Font f)
getDefaultFont()メソッドは、
このメソッドで設定したフォントオブジェクトを返します。
f - デフォルトフォントに設定するフォントオブジェクトを指定します。
NullPointerException - 引数 f が null の場合に発生します。
public int getAscent()
public int getDescent()
public int getHeight()
public int stringWidth(String str)
str - 文字列を指定します。
NullPointerException - 引数 str に null が指定された場合に発生します。
public int getBBoxWidth(String str)
str - 文字列を指定します。
NullPointerException - 引数 str に null が指定された場合に発生します。
public int getBBoxHeight(String str)
str - 文字列を指定します。
NullPointerException - 引数 str に null が指定された場合に発生します。
public int getLineBreak(String str,
int off,
int len,
int width)
で、"プログラ" の幅が48ピクセルで、"プログラミ" の幅が60ピクセルの場合、 idxの値は、4になります。この位置は、次の行の先頭になる文字の位置です。String s = "プログラミング"; int idx = font.getLineBreak(s, 0, s.length, 50);
以下に使用例を示します。 このメソッドは、指定した座標(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 に負の値が指定された場合に発生します。
public int getBBoxHeight(XString xStr)
xStr - XStringの文字列を指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
public int getBBoxWidth(XString xStr)
xStr - XStringの文字列を指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
public int getBBoxWidth(XString xStr,
int off,
int len)
xStr - XStringの文字列を指定します。off - 計算する文字列のオフセットを指定します。len - 計算する文字列の長さを指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、
引数 len に負の値が指定された場合、
引数 off または引数 off + len の値が
文字列の長さを超える場合に発生します。
public int stringWidth(XString xStr)
xStr - XStringの文字列を指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
public int stringWidth(XString xStr,
int off,
int len)
xStr - XStringの文字列を指定します。off - 計算する文字列のオフセットを指定します。len - 計算する文字列の長さを指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、
引数 len に負の値が指定された場合、
引数 off または引数 off + len の値が
文字列の長さを超える場合に発生します。
public int getLineBreak(XString xStr,
int off,
int len,
int width)
xStr - XStringの文字列を指定します。off - 計算する文字列のオフセットを指定します。len - 計算する文字列の長さを指定します。width - 行の幅をピクセル単位で指定します。
NullPointerException - 引数 xStr に null が指定された場合に発生します。
StringIndexOutOfBoundsException - 引数 off に負の値が指定された場合、
引数 len に負の値が指定された場合、
引数 off または引数 off + len の値が
xStr の長さを超える場合に発生します。
IllegalArgumentException - 引数 width に負の値が指定された場合に発生します。