|
||||||||
フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
標準の描画機能を拡張するためのインタフェースです。
MIDP の javax.microedition.lcdui.Graphics クラスの描画機能を拡張しています。
javax.microedition.lcdui.Image クラスの getGraphics() によって取得される Graphics オブジェクトと Canvas クラスの Paint() に渡される Graphics オブジェクトには、 このインタフェースが実装されています。
このインタフェースのメソッドを利用するには、
Graphics オブジェクトをキャストしてください。
以下にこのインタフェースのメソッドを利用する使用例を示します。
// Canvas クラスのサブクラスである MyCanvas クラスを作成する例
class MyCanvas extends Canvas{
// paint() メソッドのオーバーライド
public void paint(Graphics g) {
// Graphics オブジェクトを ExtensionGraphics オブジェクトにキャスト
ExtensionGraphics eg = (ExtensionGraphics) g;
// ExtensionGraphics クラスのメソッドで描画
eg.setPixel(x, y, color);
...
}
}
このインタフェースの色に関する取得と設定の機能、および Graphics クラスの色に関する取得と設定の機能では、 0x00RRGGBB という構造をした色の値を使用しています。 したがって、色深度は 24(単位はビット)、 赤・緑・青ごとに 8(単位はビット)ずつです。
移動機システムのカラーを扱う内部的なバッファが 24(単位はビット) 未満の場合は、色の値の下位ビットの情報が落ちることがあります。。
そのような場合、たとえば setPixel(int,int)
によって設定した色を getPixel(int,int)
によって取得しても、
必ずしも同じ結果になるとは限りません。
移動機システムの色深度は PhoneSystem
クラスのスタティックメソッド getColorDepth(int)
によって取得できます。
javax.microedition.lcdui.Image
,
javax.microedition.lcdui.Graphics
,
javax.microedition.lcdui.Canvas
,
PhoneSystem.getColorDepth(int)
フィールドの概要 | |
static int |
TRANS_MIRROR
変形方法で、左右反転することを表します。 |
static int |
TRANS_MIRROR_ROT180
変形方法で、左右反転し、時計回りに 180 度回転することを表します。 |
static int |
TRANS_MIRROR_ROT270
変形方法で、左右反転し、時計回りに 270 度回転することを表します。 |
static int |
TRANS_MIRROR_ROT90
変形方法で、左右反転し、時計回りに 90 度回転することを表します。 |
static int |
TRANS_NONE
変形しないことを表します。 |
static int |
TRANS_ROT180
変形方法で、時計回りに 180 度回転することを表します。 |
static int |
TRANS_ROT270
変形方法で、時計回りに 270 度回転することを表します。 |
static int |
TRANS_ROT90
変形方法で、時計回りに 90 度回転することを表します。 |
メソッドの概要 | |
void |
drawPolyline(int[] xPoints,
int[] yPoints,
int count)
点を結ぶ線分を描画します。 |
void |
drawPolyline(int[] xPoints,
int[] yPoints,
int offset,
int count)
点を結ぶ線分を描画します。 |
void |
drawRegion(javax.microedition.lcdui.Image src,
int srcX,
int srcY,
int width,
int height,
int transform,
int destX,
int destY,
int anchor)
Image の一部を描画します。 |
void |
fillPolygon(int[] xPoints,
int[] yPoints,
int count)
多角形を描画して塗りつぶします。 |
void |
fillPolygon(int[] xPoints,
int[] yPoints,
int offset,
int count)
多角形を描画して塗りつぶします。 |
int |
getPixel(int x,
int y)
座標点(x, y)のピクセルの色を返します。 |
void |
setPixel(int x,
int y)
座標点(x, y)のピクセルに、 Graphics オブジェクトに設定されている描画色で描画します。 |
void |
setPixel(int x,
int y,
int color)
ピクセルに指定された色を設定します。 |
フィールドの詳細 |
public static final int TRANS_NONE
定数 0 が割り当てられています。
public static final int TRANS_ROT90
定数 5 が割り当てられています。
public static final int TRANS_ROT180
定数 3 が割り当てられています。
public static final int TRANS_ROT270
定数 6 が割り当てられています。
public static final int TRANS_MIRROR
定数 2 が割り当てられています。
public static final int TRANS_MIRROR_ROT90
定数 7 が割り当てられています。
public static final int TRANS_MIRROR_ROT180
定数 1 が割り当てられています。
public static final int TRANS_MIRROR_ROT270
定数 4 が割り当てられています。
メソッドの詳細 |
public int getPixel(int x, int y)
移動機システムの色深度が 24(単位はビット)未満の場合、
setPixel()
で設定した色をこのメソッドによって取得しても、
必ずしも同じ結果になるとは限りません。
x
- ピクセルの x 座標値y
- ピクセルの y 座標値PhoneSystem.getColorDepth()
public void setPixel(int x, int y)
Graphics クラスの setClip() メソッドによって設定したクリップ領域の外の座標点に色を設定しても反映されません。
移動機システムの色深度が 24(単位はビット)未満の場合、
このメソッドによって設定した色を
getPixel()
メソッドによって取得しても、
必ずしも同じ結果になるとは限りません。
x
- ピクセルの x 座標値y
- ピクセルの y 座標値PhoneSystem.getColorDepth()
public void setPixel(int x, int y, int color)
Graphics クラスの setClip() メソッドで設定したクリップ領域の外の座標点を指定しても反映されません。
x
- ピクセルの x 座標値y
- ピクセルの y 座標値color
- 色。0x00RRGGBB 形式の整数です。public void drawRegion(javax.microedition.lcdui.Image src, int srcX, int srcY, int width, int height, int transform, int destX, int destY, int anchor)
src
- 描画する Image オブジェクトsrcX
- 描画する矩形の左上の x 座標値srcY
- 描画する矩形の左上の y 座標値width
- 描画する矩形の幅height
- 描画する矩形の高さtransform
- 描画するときの変形方法として以下のどれかを指定する
TRANS_NONE
TRANS_ROT90
TRANS_ROT180
TRANS_ROT270
TRANS_MIRROR
TRANS_MIRROR_ROT90
TRANS_MIRROR_ROT180
TRANS_MIRROR_ROT270
destX
- 描画先のアンカーポイントの x 座標値destY
- 描画先のアンカーポイントの y 座標値anchor
- アンカーポイントの位置。
Graphics クラスで定義されている水平位置を示す LEFT、
HCENTER、RIGHT のどれかと、垂直位置を示す TOP、BASELINE、
BOTTOM のどれかの論理和を指定する。NullPointerException
- 引数 src に null が指定された場合に発生するjava.lang.IllegalArgumentException
- 以下の場合に発生する
public void drawPolyline(int[] xPoints, int[] yPoints, int count)
最初に指定された点と最後に指定された点を結ぶ線分は描画しません。
count が 0 の場合は、なにも描画しません。 点の数が 1 の場合は、点を描画します。
xPoints
- 点の x 座標値の配列yPoints
- 点の y 座標値の配列count
- 点の個数NullPointerException
- xPoints、yPoints の値が null の場合に発生するArrayIndexOutOfBoundsException
- count に指定された値が xPoints、yPoints が指す配列の要素数より大きい場合、または負の場合に発生するpublic void drawPolyline(int[] xPoints, int[] yPoints, int offset, int count)
引数 xPoints、yPoints が指す配列の offset 番目の要素から count 個分の要素が表す点を結ぶ線分を描画します。 最初に指定された点と最後に指定された点を結ぶ線分は描画しません。
count が 0 の場合は、なにも描画しません。 count が 1 の場合は、点を描画します。
xPoints
- 点の x 座標値の配列yPoints
- 点の y 座標値の配列offset
- 描画する点のオフセットcount
- 描画する点の個数NullPointerException
- xPoints、yPoints に null が指定された場合に発生するArrayIndexOutOfBoundsException
- 以下の場合に発生する
public void fillPolygon(int[] xPoints, int[] yPoints, int count)
指定された点を頂点とする多角形を描画し、塗りつぶします。 多角形の辺が交わったり重なったりする場合の動作は機種依存です。
引数 count に指定できる頂点の数の最大値は 16 です。 引数 count に指定された値が 3 未満の場合は、何も描画しません。
xPoints
- x 座標値の配列yPoints
- y 座標値の配列count
- 多角形の頂点の総数NullPointerException
- xPoints, yPoints に null が指定された場合に発生するArrayIndexOutOfBoundsException
- count に指定された値が xPoints、yPoints が指す配列の要素数より大きい場合、または負の場合に発生するpublic void fillPolygon(int[] xPoints, int[] yPoints, int offset, int count)
引数 xPoints、yPoints が指す配列の offset 番目の要素から count 個分の要素が表す点を頂点とする多角形を描画し、塗りつぶします。 多角形の辺が交わったり重なったりする場合の動作は機種依存です。
引数 count に指定できる頂点の数の最大値は 16 です。 引数 count に指定された値が 3 未満の場合は、何も描画しません。
xPoints
- x 座標値の配列yPoints
- y 座標値の配列offset
- 描画する点のオフセットcount
- 描画する点の個数NullPointerException
- xPoints, yPoints に null が指定された場合に発生するArrayIndexOutOfBoundsException
- 以下の場合に発生する
|
||||||||
フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |