Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.lcdui
クラス Graphics

java.lang.Object
  上位を拡張 javax.microedition.lcdui.Graphics

public class Graphics
extends Object

シンプルな2次元の幾何学的な描画機能を提供します。

プリミティブな描画は、テキスト、イメージ、直線、矩形、弧が提供されます。 矩形と弧は塗りつぶしを伴う描画を行うこともできます。 矩形のコーナーは丸みを帯びたものを指定することもできます。

24ビット・カラー・モデルが提供されます。カラーはそれぞれ8ビットの赤、緑、赤によって構成されます。 全てのデバイスが完全に24ビットのカラーをサポートするわけではありません。そのようなケースでは、アプリケーションが要求した色をそれぞれのデバイスが使用可能なカラーへ変換します。 カラー表示をサポートするか否か、いくつの異なるグレースケールレベルが使用可能であるかなどのような、デバイスの特性を得るための機能を Display クラスが提供します。 また、アプリケーションは要求したカラーが実際に表示される際のカラーを得るために getDisplayColor() を使用することができます。 これにより、アプリケーションがデバイスからの独立性に妥協することなく、デバイスの振る舞いに対して適合させることを可能にします。

全てのレンダリング(描画)操作において、ソース・ピクセル(元ピクセル)は常にデスティネーション・ピクセル(先ピクセル)に「Source Over Destination ルール [Porter-Duff](新しい描画内容はすでにある描画内容の上に描画するルール)」を用いて合成を行います。 ソース・ピクセルをデスティネーション・ピクセルに合成するための他の枠組み(例えばラスター・オペレーション)は提供しません。

テキスト、線、矩形と弧の描画および塗りつぶしのプリミティブでは、ソース・ピクセルは Graphics オブジェクトの現在のカラーが表現するピクセルです。 このピクセルは常に完全に不透明であるとみなすことができます。 ソース・ピクセルは常に完全に不透明であり、Source Over Destination ルールにはピクセルを置き換える効果があります。これにより、デスティネーション・ピクセルは Graphics オブジェクトによるソース・ピクセルによって、単純に置き換えられます。

drawImage()drawRegion() メソッドは、Graphics オブジェクトの現在のカラーの代わりにレンダリング操作にソースとしてイメージ(画像)を使用します。 このような状況において、Source Over Destination ルールは以下の特性を持ちます。 ソースが完全に不透明なピクセルの場合はデスティネーション・ピクセルを置き換え、ソースが完全に透明なピクセルの場合はデスティネーション・ピクセルを変更しません。そして、半透明ピクセルがソースに含まれる場合には、デスティネーション・ピクセルにアルファ・ブレンディングしなければなりません。 実装がアルファ・ブレンディングをサポートしないなら、イメージが作成されるときに、イメージソース・データから全ての半透明ピクセルを取り除かなければなりません。 更なる情報に関してはアルファ処理を参照してください。

全てのグラフィックス・レンダリングのデスティネーションは完全に不透明なピクセルのみで構成されます。 Source Over Destination ルールの特性により、完全に不透明なデスティネーション・ピクセルにどのようなピクセルを合成しても常に完全に不透明なデスティネーション・ピクセルという結果を得ることになります。 これには、レンダリング操作にソースとして使用される場合にのみ、完全で部分的に透明な不変イメージに制限するという効果があります。

Graphics オブジェクトはディスプレイあるいは画面外のイメージ・バッファに直接対応します。 提供される Graphics オブジェクトの描画先は Graphics オブジェクトの生成時に決定されます。 ディスプレイに描画を行うための Graphics オブジェクトは Canvas オブジェクトの paint() メソッドのパラメータとして渡されます。 これはディスプレイへの描画を行う Graphics オブジェクトを取得する唯一の手段です。 この Graphics オブジェクトは paint() メソッドの中でのみ描画を行うことが可能です。

画面外のイメージ・バッファに対応する Graphics オブジェクトは、ターゲットとする Image オブジェクトの getGraphics() メソッドを呼び出すことにより取得できます。 このようにして取得した Graphics オブジェクトはアプリケーションによって保持しつづけることができ、いつでも描画の要求を行うことができます。

デフォルトの座標系の原点は、描画対象の左上に設定されています。 X 軸方向は右へ向かって増加し、Y 軸方向は下へ向かって増加します。 アプリケーションは座標系内の水平および垂直の距離が等しい距離を実際のディスプレイが提供していると仮定することができます。 つまり、ピクセルは正方形であると仮定することができます。 座標系のプログラム原点を変換する機構が提供されます。 全ての座標は整数として指定します。

座標系はピクセルそれ自身ではなく、ピクセル間の位置を表しています。 したがって、ディスプレイ左上の第1ピクセルは、座標 (0, 0)、(1,0)、(0, 1)、(1, 1) によって囲まれた境界にあります。

このように対象となる境界の意味は明確です。 完全にオペレーションの座標によって囲んだ境界内に位置するピクセルに対して影響します。 例えば、

     g.fillRect(0, 0, 3, 2)

で塗り潰される領域は、ちょうど 6 ピクセルです(この例における gGraphics オブジェクトであると仮定しています)。

フォントの個々の文字は、文字の形を構成するピクセルの集合を含んでいます。 文字が描画される際には、文字の形を構成するピクセルが、Graphics オブジェクトの現在のカラーによって塗り潰されて、文字を構成しないピクセル部分はそのまま残されます。 テキスト(文字および文字列)を描画するために、drawChar()drawChars()drawString()drawSubstring() の各メソッドが用意されています。 すべてのテキストの描画はこれらのメソッドを呼び出して行います。

直線、弧、矩形および塗り潰された矩形は setStrokeStyle() メソッドによって指定された SOLID あるいは DOTTED のいずれかのストローク・スタイルによって描画されるでしょう。 ストローク・スタイルは、塗り潰し、テキストおよびイメージの描画には影響しません。

SOLID ストローク・スタイルは、実線(連続したドット)にて描画を行います。 描画した直線は、両端で指定座標のピクセルに触れます。従って、

     g.drawLine(0, 0, 0, 0)

は、ディスプレイの左上コーナーの最初の1ピクセルを描画します。

DOTTED ストローク・スタイルは、点線にて描画を行います。 ドットの周期と長さは実装に依存します。 直線と弧の端点が描画されることは保証されません。 また、同様に矩形の角点(頂点)も描画されることは保証されません。 ドットは現在設定されている色で描画します。 ドットとドットの間のスペースに存在するピクセルはそのままの状態が保たれます。

直線の描画時と塗りつぶしの描画時では、同じ座標を与えた時に影響を受ける領域が異なります。 例えば次の描画を考慮してみてください。

      g.fillRect(x, y, w, h); // 1
      g.drawRect(x, y, w, h); // 2

構文 1 は幅 w ピクセル、高さ h ピクセルの塗り潰された矩形を描画します。 構文 2 は左上を頂点とし、構文 1 によって塗り潰されたエリア内に矩形を描画します。 しかし、塗り潰された領域の右および下の外側に 1 ピクセルあふれています。 これは直感に反しますが、構文 2 が内部で以下のような描画を行うことを理解していれば不思議ではありません。

      g.drawLine(x, y, x+w, y);
      g.drawLine(x+w, y, x+w, y+h);
      g.drawLine(x+w, y+h, x, y+h);
      g.drawLine(x, y+h, x, y);

drawLine() および drawArc() による描画は正確なピクセルを指定できません。 塗り潰し描画の対象となるピクセルは、対応する直線描画の対象となるピクセルを正確に重なるか直接接します。 塗り潰し描画は塗り潰した領域と対応する直線描画の対象となるピクセルの間に隙間を残してはなりません。 また、塗り潰し描画は対応する直線描画の境界領域の外側にあるピクセルには触れません。

クリッピング

クリップはグラフィックス・レンダリング操作によって変更対象となる、Graphics オブジェクトのデスティネーション・ピクセルのセットです。

Graphics オブジェクトには単一の矩形クリッピング領域を設定することができます。 グラフィックの描画が行われるのは矩形のクリッピング領域内に位置するピクセルのみです。 矩形のクリッピング領域外のピクセルは全てのグラフィック描画においても影響を受けることはありません。

指定された矩形と現在のクリップを完全に交差する現在のクリップを設定するための操作を提供します。 アプリケーションは現在の座標系に相対する座標を用いてクリップ矩形を提供することにより、クリップを指定することができます。

それは、それを拡張するためのクリップ矩形を指定するために適当であるか、またはデスティネーション領域を超えて完全に包括しています。 デスティネーション領域の外にはまったくピクセルは存在せず、そしてデスティネーションの外にあるクリップ矩形の領域は無視します。 デスティネーションの中にあり指定されたクリップ矩形の中にあるピクセルだけがクリップの一部であるといえます。

矩形のクリッピング領域の高さあるいは幅を 0 としたり負数を指定したりすることができます。 この場合、矩形のクリッピング領域は「空」であると想定されます。 つまり、クリッピング領域内にピクセルは1つも存在しません。 したがって、このようなクリッピング領域が設定された状態で何らかのグラフィック描画を行ったとしても一切ピクセルに変化は生じません。

座標系を操作する translate() はクリップに影響を与えません。 getClipX()getClipY()getClipWidth() および getClipHeight() メソッドが返す矩形は、Graphics オブジェクトに対する座標系の操作による影響を受けずに setClip() に渡されたクリップと同じセットのピクセルでなければなりません。 getClip 系メソッドが返す矩形は setClip() で要求したクリップ矩形と異なることがあります。 座標系を変更するか、または実装が Graphics オブジェクトのデスティネーション領域とクリップ矩形を交差させることを選択した場合にこれが発生することがあります。

グラフィックの描画が矩形のクリッピング領域によって影響を受ける場合、その描画によって触れられるピクセルは、矩形のクリッピング領域が描画に影響しなかった場合に触れられるピクセルと同じピクセルとなります。 例えば矩形のクリッピング領域 (cx, cy, cw, ch)、このクリッピング領域外の座標である (x1, y1) およびこのクリッピング領域内の座標である (x2, y2) を想像してみてください。 次のサンプル・コード、

      g.setClip(0, 0, canvas.getWidth(), canvas.getHeight());
      g.drawLine(x1, y1, x2, y2); // 3
      g.setClip(cx, cy, cw, ch);
      g.drawLine(x1, y1, x2, y2); // 4

構文 3 によって触れられたピクセルと構文 4 によって触れられたピクセルのうち、矩形のクリッピング領域内のピクセルは同一となります。

アンカー・ポイント

テキストの描画はアンカー・ポイントに基づいて行われます。 アンカー・ポイントはテキストを描画する際に要求された計算量を最小限にするために使用します。 例えば一片のテキストをセンタリングするために、アプリケーションはテキストの描画幅を得て次に適切な位置を計算するために減算と除算の組み合わせを実行するために stringWidth() または charWidth() を呼び出す必要があります。

テキストを描画するメソッドは以下の様に定義されます。

     public void drawString(String text, int x, int y, int anchor);

このメソッドは現在の色とそのアンカー・ポイントを備えた現在のフォントを使用して (x, y) 座標にテキストを描画します。 アンカー・ポイントは水平の位置を定義する LEFTHCENTERRIGHT のいずれかの定数と、垂直の位置を定義する TOPBASELINEBOTTOM のいずれかの定数を論理和演算した値で指定します。

テキストの垂直方向のセンタリングは、それが有用ではなく、指定しにくく、実装することも困難です。 このため、VCENTER 値をテキストの描画を行うメソッドを呼び出す際に指定するアンカー・ポイントに使用することは禁止されています。

位置 (x, y) に対応するテキストのバウンディング・ボックスの実際の位置はアンカー・ポイントによって決定されます。 これらのアンカー・ポイントは、バウンディング・ボックスの外のエッジに沿って、定数で指定した位置に生じます。 したがって、fg のカレントフォントに設定されている状態(g.getFont() == f の状態)において、以下の呼び出しは全て同一の結果となります。

    g.drawString(str, x, y, TOP|LEFT);
    g.drawString(str, x + f.stringWidth(str)/2, y, TOP|HCENTER);
    g.drawString(str, x + f.stringWidth(str), y, TOP|RIGHT);

    g.drawString(str, x,
        y + f.getBaselinePosition(), BASELINE|LEFT);
    g.drawString(str, x + f.stringWidth(str)/2,
        y + f.getBaselinePosition(), BASELINE|HCENTER);
    g.drawString(str, x + f.stringWidth(str),
        y + f.getBaselinePosition(), BASELINE|RIGHT);

    drawString(str, x,
        y + f.getHeight(), BOTTOM|LEFT);
    drawString(str, x + f.stringWidth(str)/2,
        y + f.getHeight(), BOTTOM|HCENTER);
    drawString(str, x + f.stringWidth(str),
        y + f.getHeight(), BOTTOM|RIGHT);

テキストの描画のためにフォント・デザイナによって指定された文字と文字の間および行と行の間(リーディング)は、Font クラスの stringWidth() メソッドと getHeight() メソッドが返す値の一部として含まれています。 例として次のサンプル・コードを示します。

    // (5)
    g.drawString(string1+string2, x, y, TOP|LEFT);

    // (6)
    g.drawString(string1, x, y, TOP|LEFT);
    g.drawString(string2, x + f.stringWidth(string1), y, TOP|LEFT);

上記のコード 5 と 6 は同等に動作します。 f.stringWidth(string1) が文字と文字の間のピクセル数を含んでいるため、この様に動作します。 同様に、適切な行間はフォントの高さを次のラインの Y 座標に加算することによって得ることができます。 例えば、

    g.drawString(string1, x, y, TOP|LEFT);
    g.drawString(string2, x, y + f.getHeight(), TOP|LEFT);

上のコードは適切な行間を持ってそれぞれの行に string1 および string2 を描画します。

文字列を描画する FontstringWidth() および getHeight() は、一片のテキストをバウンディング・ボックスのサイズを意味します。 上で述べたように、このボックスには行間および文字と文字の間隔を含んでいます。 実装は描画する文字に実際に属するピクセルの下および右にこのスペースを設置することが求められます。 注目を要するテキスト(例えばテキストの文字列の周りに矩形を描くなど)でぴったりと座標を決める必要のあるアプリケーションは、スペースが文字列の右および下にあり、左と上にはスペースが存在しないと仮定することができます。

アンカー・ポイントはイメージのポジショニングのためにも使用します。 テキストの描画と同様にイメージのためのアンカー・ポイントも、描画対象の座標 (x, y) に対するバウンディング・ボックスの位置で指定します。 テキストと異なり、イメージは垂直センタリング(VCENTER)を使用可能です。 イメージはテキストと異なり、ベースラインの概念がないため、BASELINE をイメージを描画するメソッドを呼び出す際に指定するパラメータのアンカー・ポイントには使用できません。

参照

Porter-Duff
Porter, T., and T. Duff. "Compositing Digital Images." Computer Graphics V18 N3 (SIGGRAPH 1984), p. 253-259.

導入されたバージョン:
MIDP 1.0

フィールドの概要
static int BASELINE
          テキストのアンカー・ポイントをボトム(下)とすることを示す定数です。
static int BOTTOM
          テキストとイメージのアンカー・ポイントをボトム(下)とすることを示す定数です。
static int DOTTED
          ストローク・スタイルに対して点線を指定する定数です。
static int HCENTER
          テキストとイメージのアンカー・ポイントに水平にセンタリングすることを示す定数です。
static int LEFT
          テキストとイメージのアンカー・ポイントを左とすることを示す定数です。
static int RIGHT
          テキストとイメージのアンカー・ポイントを右とすることを示す定数です。
static int SOLID
          ストローク・スタイルに対して実線を指定する定数です。
static int TOP
          テキストとイメージのアンカー・ポイントをトップ(上)とすることを示す定数です。
static int VCENTER
          イメージのアンカー・ポイントに対して垂直にセンタリングすることを示す定数です。
 
メソッドの概要
 void clipRect(int x, int y, int width, int height)
          指定された矩形と現在のクリッピングエリアと交差する矩形を新たなクリッピングエリアとして設定します。
 void copyArea(int x_src, int y_src, int width, int height, int x_dest, int y_dest, int anchor)
          anchor によって指定されたアンカー・ポイント位置 (x_dest, y_dest) のデスティネーション領域へ、矩形の領域 (x_src, y_src, width, height) の内容をコピーします。
 void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          カレントのカラーとストローク・スタイルを使用して、指定された矩形をカバーする円形あるいは楕円形の弧のアウトラインを描画します。
 void drawChar(char character, int x, int y, int anchor)
          現在のフォントおよび色を用いて指定された文字を描画します。
 void drawChars(char[] data, int offset, int length, int x, int y, int anchor)
          現在のフォントおよび色を用いて指定された文字配列の指定部分を描画します。
 void drawImage(Image img, int x, int y, int anchor)
          指定されたイメージを描画します。
 void drawLine(int x1, int y1, int x2, int y2)
          座標 (x1, y1) と座標 (x2, y2) の間に直線を、現在設定されている色とストローク・スタイルを使用して描画します。
 void drawRect(int x, int y, int width, int height)
          現在の色およびストローク・スタイルを使用して、指定された矩形のアウトラインを描画します。
 void drawRegion(Image src, int x_src, int y_src, int width, int height, int transform, int x_dest, int y_dest, int anchor)
          デスティネーションの中の位置に、指定されたソース・イメージの領域をコピーします。
 void drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha)
          指定された領域にデバイスから独立している RGB(赤緑青)と透明(A あるいはアルファ)値からなる一連のレンダリングを行います。
 void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          現在の色およびストローク・スタイルを使用して、指定された角が丸い矩形のアウトラインを描画します。
 void drawString(String str, int x, int y, int anchor)
          現在のフォントおよび色を用いて指定された文字列を描画します。
 void drawSubstring(String str, int offset, int len, int x, int y, int anchor)
          現在のフォントおよび色を用いて指定された文字列の指定部分を描画します。
 void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          指定された矩形をカバーする円形あるいは楕円形の弧を塗り潰します。
 void fillRect(int x, int y, int width, int height)
          設定されている色で指定された矩形領域を塗り潰します。
 void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          設定されている色で指定された角の丸い矩形領域を塗り潰します。
 void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
          指定された三角形を現在のカラーで塗りつぶします。
 int getBlueComponent()
          現在設定されているカレントの色情報のうち、青の色情報を返します。
 int getClipHeight()
          カレントのクリッピングエリアの高さを返します。
 int getClipWidth()
          カレントのクリッピングエリアの幅を返します。
 int getClipX()
          このグラフィック・コンテキストに設定されている原点座標に対して相対的な、カレントのクリッピング開始X座標を返します。
 int getClipY()
          このグラフィック・コンテキストに設定されている原点座標に対して相対的な、カレントのクリッピング開始Y座標を返します。
 int getColor()
          現在設定されているカレントの色情報を返します。
 int getDisplayColor(int color)
          指定したカラーを要求した際に表示するカラーを返します。
 Font getFont()
          現在のフォントを返します。
 int getGrayScale()
          描画を行うために使用しているカレントの色のグレースケール値を返します。
 int getGreenComponent()
          現在設定されているカレントの色情報のうち、緑の色情報を返します。
 int getRedComponent()
          現在設定されているカレントの色情報のうち、赤の色情報を返します。
 int getStrokeStyle()
          現在の描画に使用されているストローク・スタイルを返します。
 int getTranslateX()
          このグラフィック・コンテキストに設定されている原点のX座標を返します。
 int getTranslateY()
          このグラフィック・コンテキストに設定されている原点のY座標を返します。
 void setClip(int x, int y, int width, int height)
          指定された座標および大きさの矩形をクリッピングエリアに設定します。
 void setColor(int RGB)
          グラフィック・コンテキストに指定された赤・緑・青の各色の輝度に対応する色を設定します。
 void setColor(int red, int green, int blue)
          グラフィック・コンテキストに指定された赤・緑・青の各色の輝度に対応する色を設定します。
 void setFont(Font font)
          テキストの描画に使用するフォントを設定します。
 void setGrayScale(int value)
          グラフィック・コンテキストに指定されたグレースケール値を描画色として設定します。
 void setStrokeStyle(int style)
          直線、弧、長方形および角が丸い長方形を描画する際に使用するストロークタイプを設定します。
 void translate(int x, int y)
          このグラフィックス・コンテキストの原点座標を (x, y) に移します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

HCENTER

public static final int HCENTER

テキストとイメージのアンカー・ポイントに水平にセンタリングすることを示す定数です。

HCENTER には 1 が割り当てられています。

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

VCENTER

public static final int VCENTER

イメージのアンカー・ポイントに対して垂直にセンタリングすることを示す定数です。

VCENTER には 2 が割り当てられています。

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

LEFT

public static final int LEFT

テキストとイメージのアンカー・ポイントを左とすることを示す定数です。

LEFT には 4 が割り当てられています。

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

RIGHT

public static final int RIGHT

テキストとイメージのアンカー・ポイントを右とすることを示す定数です。

RIGHT には 8 が割り当てられています。

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

TOP

public static final int TOP

テキストとイメージのアンカー・ポイントをトップ(上)とすることを示す定数です。

TOP には 16 が割り当てられています。

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

BOTTOM

public static final int BOTTOM

テキストとイメージのアンカー・ポイントをボトム(下)とすることを示す定数です。

BOTTOM には 32 が割り当てられています。

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

BASELINE

public static final int BASELINE

テキストのアンカー・ポイントをボトム(下)とすることを示す定数です。

BASELINE には 64 が割り当てられています。

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

SOLID

public static final int SOLID

ストローク・スタイルに対して実線を指定する定数です。

SOLID には 0 が割り当てられています。

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

DOTTED

public static final int DOTTED

ストローク・スタイルに対して点線を指定する定数です。

DOTTED には 1 が割り当てられています。

関連項目:
定数フィールド値
メソッドの詳細

translate

public void translate(int x,
                      int y)

このグラフィックス・コンテキストの原点座標を (x, y) に移します。 以後、このグラフィックス・コンテキストで扱われる座標は全てこの新しい原点の影響を受けます。

このメソッドの影響は累積します。 例えば、translate(1, 2) と指定した後に translate(3, 4) を指定すると、原点座標は (4, 6) となります。

アプリケーションが絶対的な原点を指定する場合は、以下のテクニックを用います。

     g.translate(x - g.getTranslateX(), y - g.getTranslateY())
 

パラメータ:
x - 新しく設定する原点のX座標を渡します。
y - 新しく設定する原点のY座標を渡します。
関連項目:
getTranslateX(), getTranslateY()

getTranslateX

public int getTranslateX()

このグラフィック・コンテキストに設定されている原点のX座標を返します。

戻り値:
設定されている原点のX座標を返します。

getTranslateY

public int getTranslateY()

このグラフィック・コンテキストに設定されている原点のY座標を返します。

戻り値:
設定されている原点のY座標を返します。

getColor

public int getColor()

現在設定されているカレントの色情報を返します。 色情報は 0x00RRGGBB という構造をしています。

戻り値:
カレントの色情報を返します。
関連項目:
setColor(int, int, int)

getRedComponent

public int getRedComponent()

現在設定されているカレントの色情報のうち、赤の色情報を返します。 色情報は 0255 の間の値で返します。

戻り値:
赤の色情報を返します。
関連項目:
setColor(int, int, int)

getGreenComponent

public int getGreenComponent()

現在設定されているカレントの色情報のうち、緑の色情報を返します。 色情報は 0255 の間の値で返します。

戻り値:
緑の色情報を返します。
関連項目:
setColor(int, int, int)

getBlueComponent

public int getBlueComponent()

現在設定されているカレントの色情報のうち、青の色情報を返します。 色情報は 0255 の間の値で返します。

戻り値:
青の色情報を返します。
関連項目:
setColor(int, int, int)

getGrayScale

public int getGrayScale()

描画を行うために使用しているカレントの色のグレースケール値を返します。 最後に設定された色が setGrayScale() メソッドによって設定されていた場合、単純にその値を返します。 そうではない場合、赤・緑・青の各色の輝度を元に最も近いグレースケール値を計算します。 この計算はデバイスに固有の計算方法で求められます。

グレースケール値は 0255 の間の値で返します。

戻り値:
カレントのグレースケール値を返します。

setColor

public void setColor(int red,
                     int green,
                     int blue)

グラフィック・コンテキストに指定された赤・緑・青の各色の輝度に対応する色を設定します。 以後、このグラフィックス・コンテキストによる描画は全て設定された色で行われます。

各色の輝度は 0255 の間の値で指定します。 この範囲外の値を渡した場合、IllegalArgumentException を throw します。

パラメータ:
red - 設定する色の赤の輝度情報を渡します。
green - 設定する色の緑の輝度情報を渡します。
blue - 設定する色の青の輝度情報を渡します。
例外:
IllegalArgumentException - 輝度情報に不正な値が渡された場合に throw します。

setColor

public void setColor(int RGB)

グラフィック・コンテキストに指定された赤・緑・青の各色の輝度に対応する色を設定します。 以後、このグラフィックス・コンテキストによる描画は全て設定された色で行われます。 赤・緑・青の各色の輝度は 0x00RRGGBB の形式で構成します。 この値の範囲外のビットは無視します。

パラメータ:
RGB - 設定する色を 0x00RRGGBB の形式で渡します。

setGrayScale

public void setGrayScale(int value)

グラフィック・コンテキストに指定されたグレースケール値を描画色として設定します。 以後、このグラフィックス・コンテキストによる描画は全て設定された色で行われます。 カラー表示ではないディスプレイの場合はそのグレースケール値そのままで描画を行います。 カラー表示に対応したディスプレイの場合、そのグレースケール値に対応する灰色を設定します。

パラメータ:
value - 設定するグレースケール値を渡します。
例外:
IllegalArgumentException - グレースケール値が不正な場合に throw します。

getFont

public Font getFont()

現在のフォントを返します。

戻り値:
現在のフォントを返します。
関連項目:
Font, setFont(javax.microedition.lcdui.Font)

setStrokeStyle

public void setStrokeStyle(int style)

直線、弧、長方形および角が丸い長方形を描画する際に使用するストロークタイプを設定します。 これは塗り潰し、テキスト、イメージの描画には影響しません。

パラメータ:
style - 設定するストローク・スタイルを SOLID あるいは DOTTED のいずれかで指定します。
例外:
IllegalArgumentException - ストローク・スタイルが不正な場合に throw します。
関連項目:
getStrokeStyle()

getStrokeStyle

public int getStrokeStyle()

現在の描画に使用されているストローク・スタイルを返します。

戻り値:
設定されているストローク・スタイルを SOLID あるいは DOTTED のいずれかの値で返します。
関連項目:
setStrokeStyle(int)

setFont

public void setFont(Font font)

テキストの描画に使用するフォントを設定します。 フォントに null を指定した場合、デフォルトのフォントを使用します。 この場合の処理は、setFont(Font.getDefaultFont()) と記述するのと等価です。

パラメータ:
font - 設定するフォントを渡します。
関連項目:
Font, getFont(), drawString(java.lang.String, int, int, int), drawChars(char[], int, int, int, int, int)

getClipX

public int getClipX()

このグラフィック・コンテキストに設定されている原点座標に対して相対的な、カレントのクリッピング開始X座標を返します。 整数を返す2つの getClip メソッドの呼び出しは、オブジェクトを返す1つの(さかき注: Java Standard Edition の)getClip メソッドの呼び出しよりも効率的です。

戻り値:
現在設定されているクリッピング開始X座標を返します。
関連項目:
clipRect(int, int, int, int), setClip(int, int, int, int)

getClipY

public int getClipY()

このグラフィック・コンテキストに設定されている原点座標に対して相対的な、カレントのクリッピング開始Y座標を返します。 整数を返す2つの getClip メソッドの呼び出しは、オブジェクトを返す1つの(さかき注: Java Standard Edition の)getClip メソッドの呼び出しよりも効率的です。

戻り値:
現在設定されているクリッピング開始Y座標を返します。
関連項目:
clipRect(int, int, int, int), setClip(int, int, int, int)

getClipWidth

public int getClipWidth()

カレントのクリッピングエリアの幅を返します。

戻り値:
クリッピングエリアの幅を返します。
関連項目:
clipRect(int, int, int, int), setClip(int, int, int, int)

getClipHeight

public int getClipHeight()

カレントのクリッピングエリアの高さを返します。

戻り値:
クリッピングエリアの高さを返します。
関連項目:
clipRect(int, int, int, int), setClip(int, int, int, int)

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)

指定された矩形と現在のクリッピングエリアと交差する矩形を新たなクリッピングエリアとして設定します。 このメソッドは現在の設定されているクリッピングエリアをより小さくするために使用することができます。 現在のクリッピングエリアをより大きくするためには setClip メソッドを使用します。 描画のリクエストは、クリッピングエリアの外では効果を発揮しません。

パラメータ:
x - クリッピングエリアと交差している矩形のX座標を渡します。
y - クリッピングエリアと交差している矩形のY座標を渡します。
width - クリッピングエリアと交差している矩形の幅を渡します。
height - クリッピングエリアと交差している矩形の高さを渡します。
関連項目:
setClip(int, int, int, int)

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)

指定された座標および大きさの矩形をクリッピングエリアに設定します。 描画のリクエストは、クリッピングエリアの外では効果を発揮しません。

パラメータ:
x - 新しくクリッピングエリアに設定する矩形のX座標を渡します。
y - 新しくクリッピングエリアに設定する矩形のY座標を渡します。
width - 新しくクリッピングエリアに設定する矩形の幅を渡します。
height - 新しくクリッピングエリアに設定する矩形の高さを渡します。
関連項目:
clipRect(int, int, int, int)

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)

座標 (x1, y1) と座標 (x2, y2) の間に直線を、現在設定されている色とストローク・スタイルを使用して描画します。

パラメータ:
x1 - 直線を描画するX座標始点を渡します。
y1 - 直線を描画するY座標始点を渡します。
x2 - 直線を描画するX座標終点を渡します。
y2 - 直線を描画するY座標終点を渡します。

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)

設定されている色で指定された矩形領域を塗り潰します。 幅あるいは高さが 0 か負数の場合、一切描画を行いません。

パラメータ:
x - 塗り潰す矩形領域のX座標始点を渡します。
y - 塗り潰す矩形領域のY座標始点を渡します。
width - 塗り潰す矩形領域の幅を渡します。
height - 塗り潰す矩形領域の高さを渡します。
関連項目:
drawRect(int, int, int, int)

drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)

現在の色およびストローク・スタイルを使用して、指定された矩形のアウトラインを描画します。 この結果描画される矩形は幅が (width + 1)、高さが (height + 1) の領域をカバーします。 幅が 0 未満の場合、一切描画を行いません。

パラメータ:
x - 矩形を描画するX座標始点を渡します。
y - 矩形を描画するY座標始点を渡します。
width - 矩形を描画する幅を渡します。
height - 矩形を描画する高さを渡します。
関連項目:
fillRect(int, int, int, int)

drawRoundRect

public void drawRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)

現在の色およびストローク・スタイルを使用して、指定された角が丸い矩形のアウトラインを描画します。 この結果描画される矩形は幅が (width + 1)、高さが (height + 1) の領域をカバーします。 幅が 0 未満の場合、一切描画を行いません。

パラメータ:
x - 矩形を描画するX座標始点を渡します。
y - 矩形を描画するY座標始点を渡します。
width - 矩形を描画する幅を渡します。
height - 矩形を描画する高さを渡します。
arcWidth - 4つの角の弧の水平方向の直径を渡します。
arcHeight - 4つの角の弧の垂直方向の直径を渡します。
関連項目:
fillRoundRect(int, int, int, int, int, int)

fillRoundRect

public void fillRoundRect(int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)

設定されている色で指定された角の丸い矩形領域を塗り潰します。 幅あるいは高さが 0 か負数の場合、一切描画を行いません。

パラメータ:
x - 塗り潰す矩形領域のX座標始点を渡します。
y - 塗り潰す矩形領域のY座標始点を渡します。
width - 塗り潰す矩形領域の幅を渡します。
height - 塗り潰す矩形領域の高さを渡します。
arcWidth - 4つの角の弧の水平方向の直径を渡します。
arcHeight - 4つの角の弧の垂直方向の直径を渡します。
関連項目:
drawRoundRect(int, int, int, int, int, int)

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)

指定された矩形をカバーする円形あるいは楕円形の弧を塗り潰します。

描画対象の弧は startAngle の角度から始まり arcAngle 度まで描画します。 各角度の0度は3時の位置に相当します。 角度は負数の値が右回りの回転を示し、正数の値は左回りの回転を示します。

弧の中心は、原点が (x, y) の矩形の中心と同一です。 その矩形の大きさは幅と高さによって指定します。 この幅と高さが 0 か、さらに小さい場合は何も描画しません。

塗り潰す領域は、startAngle 度から開始し startAngle + arcAngle 度で終わる弧の境界領域です。 この領域は drawArc() メソッドによって描画される形状と一致します。

角度の指定は円1周を360分割した1度単位で指定します。 このため、矩形が正方形の時の45度は矩形が縦長の場合は90度に近づき、横長の場合は0度に近づきます。

パラメータ:
x - 塗り潰した弧を内包する矩形の左上のX座標を渡します。
y - 塗り潰した弧を内包する矩形の左上のY座標を渡します。
width - 塗り潰した弧を内包する矩形の幅を渡します。
height - 塗り潰した弧を内包する矩形の高さを渡します。
startAngle - 塗り潰した弧の描画を開始する角度を渡します。
arcAngle - 塗り潰した弧の描画を行う角度を渡します。 終了角度はこの角度に startAngle を足した角度となります。
関連項目:
drawArc(int, int, int, int, int, int)

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)

カレントのカラーとストローク・スタイルを使用して、指定された矩形をカバーする円形あるいは楕円形の弧のアウトラインを描画します。

描画対象の弧は startAngle の角度から始まり arcAngle 度まで描画します。 各角度の0度は3時の位置に相当します。 角度は負数の値が右回りの回転を示し、正数の値は左回りの回転を示します。

弧の中心は、原点が (x, y) の矩形の中心と同一です。 その矩形の大きさは幅と高さによって指定します。 この幅と高さが 0 か、さらに小さい場合は何も描画しません。

描画する弧の形は、startAngle 度から開始し startAngle + arcAngle 度で終わる弧のアウトラインです。 この領域は fillArc() メソッドによって塗り潰される領域の形状と一致します。

角度の指定は円1周を360分割した1度単位で指定します。 このため、矩形が正方形の時の45度は矩形が縦長の場合は90度に近づき、横長の場合は0度に近づきます。

パラメータ:
x - 描画する弧のアウトラインを内包する矩形の左上のX座標を渡します。
y - 描画する弧のアウトラインを内包する矩形の左上のY座標を渡します。
width - 描画する弧のアウトラインを内包する矩形の幅を渡します。
height - 描画する弧のアウトラインを内包する矩形の高さを渡します。
startAngle - 描画する弧のアウトラインの描画を開始する角度を渡します。
arcAngle - 描画する弧のアウトラインの描画を行う角度を渡します。 終了角度はこの角度に startAngle を足した角度となります。
関連項目:
fillArc(int, int, int, int, int, int)

drawString

public void drawString(String str,
                       int x,
                       int y,
                       int anchor)

現在のフォントおよび色を用いて指定された文字列を描画します。 位置 (x, y) はアンカー・ポイントの位置を示します。 詳しくはアンカー・ポイントの説明を参照してください。

パラメータ:
str - 描画する文字列を渡します。
x - アンカー・ポイントのX座標を渡します。
y - アンカー・ポイントのY座標を渡します。
anchor - テキストの位置を決めるためのアンカー・ポイントを渡します。
例外:
NullPointerException - strnull の場合に throw します。
IllegalArgumentException - アンカー・ポイントの指定が不正な場合に throw します。
関連項目:
drawChars(char[], int, int, int, int, int)

drawSubstring

public void drawSubstring(String str,
                          int offset,
                          int len,
                          int x,
                          int y,
                          int anchor)

現在のフォントおよび色を用いて指定された文字列の指定部分を描画します。 位置 (x, y) はアンカー・ポイントの位置を示します。 詳しくはアンカー・ポイントの説明を参照してください。

描画する文字列は渡された文字列内の位置 offset から len 文字分です。 位置は1文字目を0とする0ベースで指定します。

パラメータ:
str - 描画する文字列を渡します。
offset - 文字列内の開始位置を渡します。
len - 描画する文字数を渡します。
x - アンカー・ポイントのX座標を渡します。
y - アンカー・ポイントのY座標を渡します。
anchor - テキストの位置を決めるためのアンカー・ポイントを渡します。
例外:
StringIndexOutOfBoundsException - offset および len による指定が str に対して不適切な場合に throw します。
IllegalArgumentException - アンカー・ポイントの指定が不正な場合に throw します。
NullPointerException - strnull の場合に throw します。
関連項目:
drawString(String, int, int, int)

drawChar

public void drawChar(char character,
                     int x,
                     int y,
                     int anchor)

現在のフォントおよび色を用いて指定された文字を描画します。 位置 (x, y) はアンカー・ポイントの位置を示します。 詳しくはアンカー・ポイントの説明を参照してください。

パラメータ:
character - 描画する文字を渡します。
x - アンカー・ポイントのX座標を渡します。
y - アンカー・ポイントのY座標を渡します。
anchor - テキストの位置を決めるためのアンカー・ポイントを渡します。
例外:
IllegalArgumentException - アンカー・ポイントの指定が不正な場合に throw します。
関連項目:
drawString(java.lang.String, int, int, int), drawChars(char[], int, int, int, int, int)

drawChars

public void drawChars(char[] data,
                      int offset,
                      int length,
                      int x,
                      int y,
                      int anchor)

現在のフォントおよび色を用いて指定された文字配列の指定部分を描画します。 位置 (x, y) はアンカー・ポイントの位置を示します。 詳しくはアンカー・ポイントの説明を参照してください。

描画する文字列は渡された文字配列内の位置 offset から length 文字分です。 位置は1文字目を0とする0ベースで指定します。

パラメータ:
data - 描画する文字配列を渡します。
offset - 文字配列内の開始位置を渡します。
length - 描画する文字数を渡します。
x - アンカー・ポイントのX座標を渡します。
y - アンカー・ポイントのY座標を渡します。
anchor - テキストの位置を決めるためのアンカー・ポイントを渡します。
例外:
ArrayIndexOutOfBoundsException - offset および length による指定が文字配列 data に対して不適切な場合に throw します。
IllegalArgumentException - アンカー・ポイントの指定が不正な場合に throw します。
NullPointerException - datanull の場合に throw します。
関連項目:
drawString(java.lang.String, int, int, int)

drawImage

public void drawImage(Image img,
                      int x,
                      int y,
                      int anchor)

指定されたイメージを描画します。 位置 (x, y) はアンカー・ポイントの位置を示します。 詳しくはアンカー・ポイントの説明を参照してください。

パラメータ:
img - 描画するイメージを渡します。
x - アンカー・ポイントのX座標を渡します。
y - アンカー・ポイントのY座標を渡します。
anchor - テキストの位置を決めるためのアンカー・ポイントを渡します。
例外:
IllegalArgumentException - アンカー・ポイントの指定が不正な場合に throw します。
NullPointerException - imgnull の場合に throw します。
関連項目:
Image

drawRegion

public void drawRegion(Image src,
                       int x_src,
                       int y_src,
                       int width,
                       int height,
                       int transform,
                       int x_dest,
                       int y_dest,
                       int anchor)

デスティネーションの中の位置に、指定されたソース・イメージの領域をコピーします。この際、必要に応じて選択した変形機能を使用することでイメージ・データを変形(回転および反転)させることができます。

デスティネーションがイメージならば、そのイメージはソース・イメージと異なっていなければなりません。 同一の場合は例外を throw します。 この制限は、変形したコピーを受け入れ、重ね合わせることによって起きる可能性があるあいまいな定義されない振る舞いを避けるために存在しています。

使用できる変形機能は Sprite クラスで定義されている以下の1つでなければなりません:
Sprite.TRANS_NONE - 指定されたイメージ領域を変形せずにコピーします。
Sprite.TRANS_ROT90 - 指定されたイメージ領域を時計回りに90度回転してコピーします。
Sprite.TRANS_ROT180 - 指定されたイメージ領域を時計回りに180度回転してコピーします。
Sprite.TRANS_ROT270 - 指定されたイメージ領域を時計回りに270度回転してコピーします。
Sprite.TRANS_MIRROR - 指定されたイメージ領域を水平中央辺りで反転してコピーします。
Sprite.TRANS_MIRROR_ROT90 - 指定されたイメージ領域を水平中央辺りで反転した後、時計回りに90度回転してコピーします。
Sprite.TRANS_MIRROR_ROT180 - 指定されたイメージ領域を水平中央辺りで反転した後、時計回りに180度回転してコピーします。
Sprite.TRANS_MIRROR_ROT270 - 指定されたイメージ領域を水平中央辺りで反転した後、時計回りに270度回転してコピーします。

ソース領域に透明なピクセルが含まれるなら、デスティネーション領域の対応するピクセルをそのままの状態で残さなければなりません。 ソース領域に半透明なピクセルが含まれるなら、デスティネーション領域の全ての画素は完全に不透明な状態を維持したまま、デスティネーション領域の対応するピクセルに対して合成操作を実行しなければなりません。

座標 (x_src, y_src) はソース・イメージの左上角に対応します。 x_srcy_srcwidth および height パラメータはソース・イメージの矩形領域を指定します。 この領域がソース・イメージの領域を超えた範囲を示すのは不正です。 つまり以下の要件を満たさなければなりません:

     x_src >= 0
     y_src >= 0
     x_src + width <= ソース・イメージの幅
     y_src + height <= ソース・イメージの高さ

座標 (x_dest, y_dest)Graphics オブジェクトの座標系に対応します。 デスティネーション領域が Graphics オブジェクトの領域を超えた範囲を示すのは正当です。 Graphics オブジェクトの領域の外にあるピクセルは描画されません。

変換はソース・イメージの領域からのイメージ・データに適用されます。そして、デスティネーションの座標 (x_dest, y_dest) にアンカー・ポイントによるポジショニングを行い、結果をレンダリングします。

パラメータ:
src - コピー元のソース・イメージを渡します。
x_src - コピーするソース・イメージ領域の左上角の X 座標を渡します。
y_src - コピーするソース・イメージ領域の左上角の Y 座標を渡します。
width - コピーする領域の幅を渡します。
height - コピーする領域の高さを渡します。
transform - コピーする選択領域に適用する変形値を渡します。
x_dest - 領域を描く、デスティネーションのアンカー・ポイントの X 座標を渡します。
y_dest - 領域を描く、デスティネーションのアンカー・ポイントの Y 座標を渡します。
anchor - デスティネーションイメージの領域を置くためのアンカー・ポイントを渡します。
例外:
IllegalArgumentException - src がこの Graphics オブジェクトのデスティネーションであるか、srcnull であるか、transform あるいは anchor が無効であるか、コピー対象がソース・イメージの領域を超える場合に throw します。
導入されたバージョン:
MIDP 2.0

copyArea

public void copyArea(int x_src,
                     int y_src,
                     int width,
                     int height,
                     int x_dest,
                     int y_dest,
                     int anchor)

anchor によって指定されたアンカー・ポイント位置 (x_dest, y_dest) のデスティネーション領域へ、矩形の領域 (x_src, y_src, width, height) の内容をコピーします。 デスティネーション領域には、このメソッドの実行前のソース領域の正確な内容のコピーを含むという結果をもたらさなければなりません。 ソースとデスティネーションの領域が重なっていたとしても、この結果を得られなければなりません。

位置 (x_src, y_src)(x_dest, y_dest) はともに Graphics オブジェクトの座標系に対応して指定します。 ソース領域が Graphics オブジェクトの領域を超えた範囲を示すのは不正です。 つまり以下の要件を満たさなければなりません:

     x_src + tx >= 0
     y_src + ty >= 0
     x_src + tx + width <= Graphics オブジェクトによるデスティネーションの幅
     y_src + ty + height <= Graphics オブジェクトによるデスティネーションの高さ
このうち txty はこの Graphics オブジェクトに設定された原点座標の移動量を示し、それぞれ getTranslateX()getTranslateY() から得ることができます。

しかし、デスティネーション領域が Graphics オブジェクトの領域を超えた範囲を示すのは正当です。 Graphics オブジェクトの領域の外のピクセルには描画されません。

copyArea メソッドはデスティネーションが実際のディスプレイ・デバイスである場合を除く、全ての Graphics オブジェクトで使用することができます。 ディスプレイに対して copyArea メソッドを許容するとダブル・バッファリングを実行するための実装に対して副作用をもたらすことがあるため、この制限が設けられています。

他のグラフィックス操作のように、copyArea メソッドはピクセルを合成するために Source Over Destination ルールを使用します。 しかし、これは常に可変タイプのイメージ(完全に不透明のピクセルしか含むことができない)のためだけに定義されているため、事実上これはピクセル置き換えと等価です。

パラメータ:
x_src - ソース領域の左上角の X 座標を渡します。
y_src - ソース領域の左上角の Y 座標を渡します。
width - ソース領域の幅を渡します。
height - ソース領域の高さを渡します。
x_dest - 領域を描く、デスティネーションのアンカー・ポイントの X 座標を渡します。
y_dest - 領域を描く、デスティネーションのアンカー・ポイントの Y 座標を渡します。
anchor - デスティネーションイメージの領域を置くためのアンカー・ポイントを渡します。
例外:
IllegalStateException - この Graphics オブジェクトのデスティネーションがディスプレイ・デバイスの際に throw します。
IllegalArgumentException - コピー対象がソース・イメージの領域を超える場合に throw します。
導入されたバージョン:
MIDP 2.0

fillTriangle

public void fillTriangle(int x1,
                         int y1,
                         int x2,
                         int y2,
                         int x3,
                         int y3)

指定された三角形を現在のカラーで塗りつぶします。 それぞれの座標ペアを接続する線は塗りつぶした三角形に内包されます。

パラメータ:
x1 - 三角形の最初の頂点の X 座標を渡します。
y1 - 三角形の最初の頂点の Y 座標を渡します。
x2 - 三角形の2番目の頂点の X 座標を渡します。
y2 - 三角形の2番目の頂点の Y 座標を渡します。
x3 - 三角形の3番目の頂点の X 座標を渡します。
y3 - 三角形の3番目の頂点の Y 座標を渡します。
導入されたバージョン:
MIDP 2.0

drawRGB

public void drawRGB(int[] rgbData,
                    int offset,
                    int scanlength,
                    int x,
                    int y,
                    int width,
                    int height,
                    boolean processAlpha)

指定された領域にデバイスから独立している RGB(赤緑青)と透明(A あるいはアルファ)値からなる一連のレンダリングを行います。 値は 24 ビットの RGB と 8 ビットのアルファ値(0xAARRGGBB)形式で rgbData に格納されており、最初の値は offset で指定された位置となります。 scanlength は配列中の offset からの相対的な連続したピクセルの列の範囲を示します。 rgbData 配列の範囲内に参照可能な全ての結果が存在するのであれば、scanlength にはどのような値も許容されます(負数を含む)。 ARGB データは各列の中において左から右へ向かって水平にラスタライズします。 ARGB 値は x, y, width によって指定された領域にレンダリングします。そして、この操作はこの Graphics オブジェクトに設定されている現在のクリップ領域と原点移動の影響を受けます。

P(a,b) がイメージの列 a と行 b が示す位置のピクセルの値を意味し、行と列は上端をゼロとして開始し、下へ向かって付番し、行は左端をゼロとして開始し、右へ向かって付番すると考えてください。 この操作は以下のように定義することができます:

     P(a, b) = rgbData[offset + (a - x) + (b - y) * scanlength]
条件:
     x <= a < x + width
     y <= b < y + height

スクリーンとオフスクリーンの Image オブジェクトの両方の Graphics クラスに対してこのメソッドを提供します。 Image.getRGB(int[], int, int, int, int, int, int) メソッドが ARGB 値を取得する手段を提供します。

processAlphatrue ならば、ARGB 形式の高位バイトは透明度を意味します; つまり、0x00RRGGBB は完全に透明なピクセルを意味し、また 0xFFRRGGBB は完全に不透明なピクセルを意味します。 中間的なアルファ値は半透明を意味します。 実装がイメージのレンダリング操作においてアルファ・ブレンディングをサポートしないのであれば、全てのレンダリングの実行前に(実装は)ソース・データから全ての半透明を除外しなければなりません(さらなる内容についてはアルファ処理を参照してください)。 processAlphafalse ならば、アルファ値は無視され、全てのピクセルは完全に不透明な状態として扱わなければなりません。

ARGB 値からデバイスに依存するピクセルに対するマッピングはプラットホーム特有であり、著しい計算を必要とすることがあります。

パラメータ:
rgbData - 0xAARRGGBB 形式の値を格納した ARGB 値の配列を渡します。
offset - 配列内の最初の ARGB 値のインデックスを渡します。
scanlength - rgbData 配列の連続した列に対応するピクセル範囲の配列オフセットに対応する値を渡します。
x - レンダリング領域の水平位置を渡します。
y - レンダリング領域の垂直位置を渡します。
width - レンダリング領域の幅を渡します。
height - レンダリング領域の高さを渡します。
processAlpha - rgbData にアルファチャネルがあるものとして扱う場合には true を、ピクセルは全て完全に不透明として扱うなら false を渡します。
例外:
ArrayIndexOutOfBoundsException - 要求した操作による rgbData の要素へのインデックス・アクセスが負数あるいは長さを超えた場合に throw します。
NullPointerException - rgbDatanull の場合に throw します。
導入されたバージョン:
MIDP 2.0

getDisplayColor

public int getDisplayColor(int color)

指定したカラーを要求した際に表示するカラーを返します。 このメソッドは開発者が RGB 値をデバイスに実際に表示することができる、異なるカラーのセットにマッピングする様式を調査することを可能にします。 例えばモノクロデバイスでは、指定したカラーの明るさによって、このメソッドは 0xFFFFFF( 白 ) か 0x000000( 黒 ) のいずれかを返します。

パラメータ:
color - (アプリケーションが)望むカラー(0x00RRGGBB 形式で、高位バイトは無視)を渡します。
戻り値:
デバイスのスクリーンに表示する際に対応するカラー(0x00RRGGBB 形式)を返します。
導入されたバージョン:
MIDP 2.0

Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

公式仕様書原文の著作権表記等(※):

Mobile Information Device Profile Specification ("Specification")
Version: 2.0
Status: FCS
Release: November 5, 2002

Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc.
All rights reserved.
※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。