|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
Objectcom.docomostar.ui.Graphics
com.docomostar.opt.ui.Graphics2
public class Graphics2
拡張グラフィックスクラスです。
機種依存の描画処理などを持ちます。
拡張グラフィクスをサポートしている場合は、paint メソッドに渡される
グラフィクスオブジェクトや getGraphics メソッドで返されるグラフィクス
オブジェクトは、実際には Graphics2 クラスのインスタンスとなっています。
例えば下記のような形で使い分けることができます。
class MyCanvas extends Canvas{
public void paint(Graphics g) {
if (g instanceof Graphics2) {
Graphics2 g2 = (Graphics2)g;
g2.drawNthImage(i, 1, 0, 0);
...
} else {
g.drawImage(i, 0, 0);
...
}
}
}
端末によってサポートされていない場合があります。未サポートの場合、 メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。
| フィールドの概要 | |
|---|---|
static int |
CM_NORMAL
描画時の座標モードのうち、ノーマルモードを表します(=0)。 |
static int |
CM_ZOOM
描画時の座標モードのうち、256倍にズームするモードを表します(=256)。 |
static int |
OP_ADD
レンダリング時の演算方法のうち、「加算」を表します(=1)。 |
static int |
OP_REPL
レンダリング時の演算方法のうち、「置き換え」を表します(=0)。 |
static int |
OP_SUB
レンダリング時の演算方法のうち、「減算」を表します(=2)。 |
| クラス com.docomostar.ui.Graphics から継承されたフィールド |
|---|
AQUA, BLACK, BLUE, FLIP_HORIZONTAL, FLIP_NONE, FLIP_ROTATE, FLIP_ROTATE_LEFT, FLIP_ROTATE_RIGHT, FLIP_ROTATE_RIGHT_HORIZONTAL, FLIP_ROTATE_RIGHT_VERTICAL, FLIP_VERTICAL, FUCHSIA, GRAY, GREEN, LIME, MAROON, NAVY, OLIVE, PURPLE, RED, SILVER, TEAL, WHITE, YELLOW |
| コンストラクタの概要 | |
|---|---|
protected |
Graphics2()
|
| メソッドの概要 | |
|---|---|
void |
drawImage(com.docomostar.ui.Image image,
AffineTrans at)
イメージに 2 次元のアフィン変換をかけて描画します。 |
void |
drawImage(com.docomostar.ui.Image image,
AffineTrans at,
int sx,
int sy,
int width,
int height)
イメージの一部に 2 次元のアフィン変換をかけて描画します。 |
void |
drawNthImage(com.docomostar.media.MediaImage image,
int k,
int x,
int y)
アニメーションGIFファイルから生成した 複数の画像をもつメディアイメージオブジェクトの任意の画像を描画します。 |
void |
drawNumber(int x,
int y,
int value,
int digit)
数値を右詰めで描画します。 |
com.docomostar.ui.Image |
getImage(int x,
int y,
int width,
int height)
矩形領域のピクセルをイメージとして取得します。 |
static int |
getIntermediateColor(int color1,
int color2,
int ratio)
指定された2色の中間色を取得します。 |
int |
getSyncUnlockInterval()
表示デバイスの垂直同期の間隔をμ秒単位で取得します。 |
void |
setCoordinateMode(int mode)
描画時の座標指定モードを設定します。 |
void |
setRenderMode(int operator,
int srcRatio,
int dstRatio)
レンダリング時の演算方法を設定します。 |
int |
syncUnlock(int interval)
表示デバイスの垂直同期に合わせたタイミングで、ダブルバッファリングの終了(Graphics#unlock(true)相当)を行います。 |
| クラス com.docomostar.ui.Graphics から継承されたメソッド |
|---|
clearClip, clearRect, clipRect, copy, copyArea, drawArc, drawChars, drawImage, drawImage, drawImage, drawImage, drawImageMap, drawImageReference, drawImageReference, drawLine, drawPolyline, drawPolyline, drawRawImage, drawRawImage, drawRect, drawScaledImage, drawScaledRawImage, drawSpriteSet, drawSpriteSet, drawString, drawString, drawString, fillArc, fillPolygon, fillPolygon, fillRect, getColorOfName, getColorOfRGB, getColorOfRGB, getPixel, getPixels, getRGBPixel, getRGBPixels, lock, setClip, setColor, setFlipMode, setFont, setOrigin, setPictoColorEnabled, setPixel, setPixel, setPixels, setRGBPixel, setRGBPixels, unlock |
| クラス Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int CM_NORMAL
setCoordinateMode(int),
定数フィールド値public static final int CM_ZOOM
setCoordinateMode(int),
定数フィールド値public static final int OP_REPL
setRenderMode(int, int, int),
定数フィールド値public static final int OP_ADD
setRenderMode(int, int, int),
定数フィールド値public static final int OP_SUB
setRenderMode(int, int, int),
定数フィールド値| コンストラクタの詳細 |
|---|
protected Graphics2()
| メソッドの詳細 |
|---|
public void setCoordinateMode(int mode)
CM_NORMAL が指定された場合、通常の座標指定モードになります。
CM_ZOOM が指定された場合、描画メソッドの引数に指定された座標値に
Graphics.setOrigin(int, int) で指定された座標を加算して、
さらに 1/256 した値を実際に描画する座標値として使用します。
mode - 座標指定モードを指定します。
CM_NORMAL 、CM_ZOOM のいずれかを指定できます。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
public void setRenderMode(int operator,
int srcRatio,
int dstRatio)
OP_REPL の場合OP_ADD の場合OP_SUB の場合
operator - 演算方法を指定します。
OP_REPL、OP_ADD、OP_SUB
のいずれかを指定します。srcRatio - ソースピクセルの乗数を0から255の範囲で指定します。dstRatio - デスティネーションピクセルの乗数を0から255の範囲で指定します。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
IllegalArgumentException -
public com.docomostar.ui.Image getImage(int x,
int y,
int width,
int height)
x - 矩形の左上のX座標を指定します。y - 矩形の左上のY座標を指定します。width - 矩形の幅を指定します。height - 矩形の高さを指定します。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
public void drawNumber(int x,
int y,
int value,
int digit)
x - X座標を指定します。y - Y座標を指定します。value - 描画する数値を指定します。digit - 桁数を指定します。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
public void drawImage(com.docomostar.ui.Image image,
AffineTrans at)
イメージ上の座標 (x, y) の画素は、 以下のような行列演算によって求められる座標 (x', y') に描画されます。
[ x'] 1 [ m00 m01 m02 ] [ x ] [ y'] = ------ [ m10 m11 m12 ] [ y ] [ 1 ] 4096 [ 0 0 4096 ] [ 1 ]引数には、3 次元アフィン変換用に用意されている
AffineTrans クラスのオブジェクトを指定しますが、
その中の m00, m01, m02, m10, m11, m12 の六つの要素のみが使用されます。
image - 描画するイメージオブジェクトを指定します。at - 2次元のアフィン変換の行列を指定します。
NullPointerException -
com.docomostar.ui.UIException -
public void drawImage(com.docomostar.ui.Image image,
AffineTrans at,
int sx,
int sy,
int width,
int height)
イメージ上の座標 (x, y) の画素は、 以下のような行列演算によって求められる座標 (x', y') に描画されます。
[ x'] 1 [ m00 m01 m02 ] [ x ] [ y'] = ------ [ m10 m11 m12 ] [ y ] [ 1 ] 4096 [ 0 0 4096 ] [ 1 ]引数には、3 次元アフィン変換用に用意されている
AffineTrans クラスのオブジェクトを指定しますが、
その中の m00, m01, m02, m10, m11, m12 の六つの要素のみが使用されます。
image - 描画するイメージオブジェクトを指定します。at - 2次元のアフィン変換の行列を指定します。sx - 描画元の矩形の左上の X 座標を指定します。sy - 描画元の矩形の左上の Y 座標を指定します。width - 描画元の矩形の幅を指定します。height - 描画元の矩形の高さを指定します。
NullPointerException -
IllegalArgumentException -
com.docomostar.ui.UIException -
public void drawNthImage(com.docomostar.media.MediaImage image,
int k,
int x,
int y)
image - 描画するイメージオブジェクトを指定します。k - 何番目のイメージを描画するかを指定します。
イメージオブジェクトが n 枚の画像をもつ場合、
有効な k の値域は 0, 1, ..., (n - 1) です。x - 描画先のX座標を指定します。y - 描画先のY座標を指定します。
com.docomostar.lang.UnsupportedOperationException -
NullPointerException -
com.docomostar.ui.UIException - IllegalArgumentException -
public static int getIntermediateColor(int color1,
int color2,
int ratio)
ratioが0の時はcolor1と同じ色を、
255の時はcolor2と同じ色を返します。
color1 - 中間色の元となる色の一つを指定します。指定する値は、Graphics.getColorOfRGB メソッド等で返される機種依存の色を表す整数値です。color2 - 中間色の元となる色の一つを指定します。指定する値は、Graphics.getColorOfRGB メソッド等で返される機種依存の色を表す整数値です。ratio - 中間色の、color2への近さを指定します。
指定できる範囲は0から255です。
color1とcolor2の中間色を返します。返される値は、機種依存の色を表す整数値です。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
IllegalArgumentException -
public int getSyncUnlockInterval()
com.docomostar.lang.UnsupportedOperationException -
public int syncUnlock(int interval)
本メソッドの使用により、ちらつき(ティアリングノイズ)のない滑らかな表示を実現できます。
引数に1を指定すると、本メソッドを呼び出してから最初の垂直同期を待って表示更新を行います。 引数にnを指定すると、本メソッドを前回呼び出した時に待った垂直同期から数えて、n回目の垂直同期を待って表示更新を行います(ただし、呼び出しが当該垂直同期より後だった場合は、次の垂直同期を待ちます)。 したがって、ちょうど1秒間に60回の表示デバイスにおいてn=3で呼び出し続けた場合は、毎秒20回の表示更新が行われることになります。
返り値としては、本メソッドを前回呼び出した時に待った垂直同期から数えて、何回目の垂直同期を実際に待ったのかが返されます。 そのため、通常は引数と同じ値となりますが、引数で指定した垂直同期よりも後のタイミングで本メソッドを呼び出した場合には、引数よりも大きな値が返されることになります。 ただし、実際に待った垂直同期の回数が int 型の最大値を超える場合には、 int 型の最大値が返されます。
Graphics#lock() によってダブルバッファリングを開始していない状況で本メソッドを呼び出した場合は、何も処理を行わず、返り値は0となります。 ダブルバッファリングを開始している状態で、Star アプリが起動してから初めて本メソッドを呼び出した時の振舞いは引数1の場合と同様となり、返り値は1となります。
描画対象の Image が既に破棄されている状況で本メソッドを呼び出した場合は、 何も行なわず、返り値は 0 となります。 また、Graphics#unlock(true) が実画面の描画更新処理を行なわない状況で本メソッドを呼び出した場合は、 垂直同期待ち(及び表示更新)は行なわず、返り値は 0 となります。 具体的には、描画対象の Canvas がカレントフレームでない場合、 画面占有状態(FEP画面等)の場合などが該当します。 これらの場合(返り値が 0 の場合)、垂直同期回数のカウントはリセットされずに継続されます。
サスペンド中には、垂直同期は停止するものと見なします。 すなわち、レジューム後に本メソッドを呼び出した場合は、「サスペンド前の垂直同期の回数+レジューム後の垂直同期の回数 = interval」となるまで待ちます。
本メソッドで垂直同期を待っている間は、他のJavaスレッドやイベント処理は実行されません。 本メソッドで垂直同期を待っている状態でサスペンド要求があった場合、要求は一時保留され、本メソッド終了後に要求が実行されます。 同様に、各種リスナ等によるイベント通知も本メソッド終了後に遅延して通知されることに注意して下さい。
interval - 前回から数えて何回目の垂直同期を待つかを指定します。
com.docomostar.lang.UnsupportedOperationException -
IllegalArgumentException -
IllegalArgumentException -
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。