com.kddi.graphics
インタフェース ExtensionGraphics <Phase3>


public interface ExtensionGraphics

標準の描画機能を拡張するためのインタフェースです。

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)
          ピクセルに指定された色を設定します。
 

フィールドの詳細

TRANS_NONE

public static final int TRANS_NONE
変形しないことを表します。

定数 0 が割り当てられています。


TRANS_ROT90

public static final int TRANS_ROT90
変形方法で、時計回りに 90 度回転することを表します。

定数 5 が割り当てられています。


TRANS_ROT180

public static final int TRANS_ROT180
変形方法で、時計回りに 180 度回転することを表します。

定数 3 が割り当てられています。


TRANS_ROT270

public static final int TRANS_ROT270
変形方法で、時計回りに 270 度回転することを表します。

定数 6 が割り当てられています。


TRANS_MIRROR

public static final int TRANS_MIRROR
変形方法で、左右反転することを表します。

定数 2 が割り当てられています。


TRANS_MIRROR_ROT90

public static final int TRANS_MIRROR_ROT90
変形方法で、左右反転し、時計回りに 90 度回転することを表します。

定数 7 が割り当てられています。


TRANS_MIRROR_ROT180

public static final int TRANS_MIRROR_ROT180
変形方法で、左右反転し、時計回りに 180 度回転することを表します。

定数 1 が割り当てられています。


TRANS_MIRROR_ROT270

public static final int TRANS_MIRROR_ROT270
変形方法で、左右反転し、時計回りに 270 度回転することを表します。

定数 4 が割り当てられています。

メソッドの詳細

getPixel

public int getPixel(int x,
                    int y)
座標点(x, y)のピクセルの色を返します。 画像領域の範囲外の座標点を指定した場合は 0 を返します。

移動機システムの色深度が 24(単位はビット)未満の場合、 setPixel() で設定した色をこのメソッドによって取得しても、 必ずしも同じ結果になるとは限りません。

パラメータ:
x - ピクセルの x 座標値
y - ピクセルの y 座標値
戻り値:
指定したピクセルの色。0x00RRGGBB 形式の整数です。
関連項目:
PhoneSystem.getColorDepth()

setPixel

public void setPixel(int x,
                     int y)
座標点(x, y)のピクセルに、 Graphics オブジェクトに設定されている描画色で描画します。

Graphics クラスの setClip() メソッドによって設定したクリップ領域の外の座標点に色を設定しても反映されません。

移動機システムの色深度が 24(単位はビット)未満の場合、 このメソッドによって設定した色を getPixel() メソッドによって取得しても、 必ずしも同じ結果になるとは限りません。

パラメータ:
x - ピクセルの x 座標値
y - ピクセルの y 座標値
関連項目:
PhoneSystem.getColorDepth()

setPixel

public void setPixel(int x,
                     int y,
                     int color)
ピクセルに指定された色を設定します。

Graphics クラスの setClip() メソッドで設定したクリップ領域の外の座標点を指定しても反映されません。

パラメータ:
x - ピクセルの x 座標値
y - ピクセルの y 座標値
color - 色。0x00RRGGBB 形式の整数です。

drawRegion

public void drawRegion(javax.microedition.lcdui.Image src,
                       int srcX,
                       int srcY,
                       int width,
                       int height,
                       int transform,
                       int destX,
                       int destY,
                       int anchor)
Image の一部を描画します。 引数 transform の内容に従い、 イメージを変形して描画します。
パラメータ:
src - 描画する Image オブジェクト
srcX - 描画する矩形の左上の x 座標値
srcY - 描画する矩形の左上の y 座標値
width - 描画する矩形の幅
height - 描画する矩形の高さ
transform - 描画するときの変形方法として以下のどれかを指定する
destX - 描画先のアンカーポイントの x 座標値
destY - 描画先のアンカーポイントの y 座標値
anchor - アンカーポイントの位置。 Graphics クラスで定義されている水平位置を示す LEFT、 HCENTER、RIGHT のどれかと、垂直位置を示す TOP、BASELINE、 BOTTOM のどれかの論理和を指定する。
例外:
NullPointerException - 引数 src に null が指定された場合に発生する
java.lang.IllegalArgumentException - 以下の場合に発生する
  • 引数 src に指定された Image オブジェクトがこの Graphics オブジェクトによって参照している Image オブジェクトと同じ場合
  • 引数 anchor に不正な値が指定された場合
  • 引数 transform に不正な値が指定された場合
  • 引数 srcX、srcY、width、height で指定された描画領域が src の画像領域から外れている場合

drawPolyline

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 が指す配列の要素数より大きい場合、または負の場合に発生する

drawPolyline

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 - 以下の場合に発生する
  • offset に負の値が指定された場合
  • count に負の値が指定された場合
  • offset + count の値が xPoints、yPoints が指す配列の要素数より大きい場合

fillPolygon

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 が指す配列の要素数より大きい場合、または負の場合に発生する

fillPolygon

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 - 以下の場合に発生する
  • offset に負の値が指定された場合
  • count に負の値が指定された場合
  • offset + count の値が xPoints, yPoints が指す配列の要素数より大きい場合


Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.